Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

LINQ - Convert List to Dictionary with Value as List

Tags:

c#

.net

linq

I have a

List<MyObject>  

that I retrieve from the database. However, I would like it keyed by a property in MyObject for grouping purposes. What is the best way with LINQ to cast my list to:

Dictionary<long, List<MyObject>> 

I have the following:

myObjectList.ToDictionary(x => x.KeyedProperty) 

But it returns:

Dictionary<long, MyObject> 
like image 524
Brandon Avatar asked Aug 23 '10 15:08

Brandon


1 Answers

It sounds like you want to group the MyObject instances by KeyedProperty and put that grouping into a Dictionary<long,List<MyObject>>. If so then try the following

List<MyObject> list = ...; var map = list   .GroupBy(x => x.KeyedProperty)   .ToDictionary(x => x.Key, x => x.ToList()); 
like image 90
JaredPar Avatar answered Oct 02 '22 15:10

JaredPar