Подтвердить что ты не робот

Группировать в словарь элементов

Привет У меня есть список элементов класса 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());

Есть ли лучший способ сделать это

4b9b3361

Ответ 1

Это будет более эффективно заменить:

gdc => gdc.ToList()[0].groupID

с:

gdc => gdc.Key

Кроме этого, похоже, я бы это сделал.

В качестве альтернативы, если вы используете методы расширения по LINQ (я лично их предпочитаю), он может быть еще более сокращен:

var t = data.GroupBy(data => data.groupID).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());