我有一个
List<MyObject>
Run Code Online (Sandbox Code Playgroud)
我从数据库中检索.但是,我希望它由MyObject中的属性键入以进行分组.使用LINQ将列表转换为以下内容的最佳方法是:
Dictionary<long, List<MyObject>>
Run Code Online (Sandbox Code Playgroud)
我有以下内容:
myObjectList.ToDictionary(x => x.KeyedProperty)
Run Code Online (Sandbox Code Playgroud)
但它返回:
Dictionary<long, MyObject>
Run Code Online (Sandbox Code Playgroud)
Jar*_*Par 165
听起来你想要对MyObject实例进行KeyedProperty分组并将该分组放入Dictionary<long,List<MyObject>>.如果是,请尝试以下操作
List<MyObject> list = ...;
var map = list
.GroupBy(x => x.KeyedProperty)
.ToDictionary(x => x.Key, x => x.ToList());
Run Code Online (Sandbox Code Playgroud)
cas*_*One 15
您应该在类上使用ToLookup扩展方法,如下所示:Enumerable
List<MyObject> list = ...;
ILookup<long, MyObject> lookup = list.ToLookup(o => o.KeyedProperty);
Run Code Online (Sandbox Code Playgroud)
如果要将其放在字典中,则可以使用ToDictionary扩展方法,如下所示:
IDictionary<long, IEnumerable<MyObject>> dictionary = lookup.ToDictionary(
l => l.Key);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69269 次 |
| 最近记录: |