у меня есть
List<MyObject>
что я извлекаю из базы данных. Однако я хотел бы, чтобы он был привязан к свойству в MyObject для целей группировки. Как лучше всего с LINQ преобразовать мой список в:
Dictionary<long, List<MyObject>>
Имею следующее:
myObjectList.ToDictionary(x => x.KeyedProperty)
Но возвращается:
Dictionary<long, MyObject>
Ответы:
Похоже, вы хотите сгруппировать
MyObject
экземплярыKeyedProperty
и поместить эту группу в файлDictionary<long,List<MyObject>>
. Если да, то попробуйте следующееисточник
Вы должны использовать
ToLookup
метод расширения вEnumerable
классе следующим образом:Если вы хотите поместить это в словарь, вы можете использовать
ToDictionary
метод расширения , например:источник
ILookup
ссылки, тогда как принятый ответ - нет?Lookup<TKey, TValue>
может быть лучше, чем структураDictionary<TKey, TValue>
.ILookup
часто это идеальная структура кода, она часто плохо обрабатывается для сериализации.