LINQ - Convert List to Dictionary with Value as List

前端 未结 2 1791
情深已故
情深已故 2020-12-23 13:08

I have a

List 

that I retrieve from the database. However, I would like it keyed by a property in MyObject for grouping pu

相关标签:
2条回答
  • 2020-12-23 13:26

    You should use the ToLookup extension method on the Enumerable class like so:

    List<MyObject> list = ...;
    
    ILookup<long, MyObject> lookup = list.ToLookup(o => o.KeyedProperty);
    

    If you want to place that in a dictionary, then you could use the ToDictionary extension method, like so:

    IDictionary<long, IEnumerable<MyObject>> dictionary = lookup.ToDictionary(
        l => l.Key);
    
    0 讨论(0)
  • 2020-12-23 13:35

    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());
    
    0 讨论(0)
提交回复
热议问题