Группировать в словарь элементов
Привет У меня есть список элементов класса class class1, как показано ниже. Как сгруппировать их в
Dictionary<int,List<SampleClass>>
на основе идентификатора groupID
class SampleClass
{
public int groupID;
public string someData;
}
Я сделал так:
var t =(from data in datas group data by data.groupID into dataGroups select dataGroups).ToDictionary(gdc => gdc.ToList()[0].groupID, gdc => gdc.ToList());
Есть ли лучший способ сделать это
Ответы
Ответ 1
Это будет более эффективно заменить:
gdc => gdc.ToList()[0].groupID
с:
gdc => gdc.Key
Кроме этого, похоже, я бы это сделал.
В качестве альтернативы, если вы используете методы расширения по LINQ (я лично их предпочитаю), он может быть еще более сокращен:
var t = data.GroupBy(data => data.groupID).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());