rar*_*esm 7 c# dictionary list
我有一个List和MyClass是:
public class MyClass
{
public bool Selected { get; set; }
public Guid NoticeID { get; set; }
public Guid TypeID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何将此列表转换为a Dictionary<Guid, List<Guid>>
,其中字典键是TypeID
属性中的GUID ,值是与该列表NoticeID
对应的所有值的列表TypeID
.我试过这样:
list.GroupBy(p => p.TypeID).ToDictionary(p => p.Key, p => p.ToList())
Run Code Online (Sandbox Code Playgroud)
但这会返回一个Dictionary <Guid, List<MyClass>>
,我想要一个Dictionary<Guid, List<Guid>>
.
Jon*_*eet 19
好吧,当你分组时,你可以为组的每个元素指定你想要的值:
var dictionary = list.GroupBy(p => p.TypeID, p => p.NoticeID)
.ToDictionary(p => p.Key, p => p.ToList());
Run Code Online (Sandbox Code Playgroud)
但是,我强烈考虑使用查找而不是字典:
var lookup = list.ToLookup(p => p.TypeID, p => p.NoticeID);
Run Code Online (Sandbox Code Playgroud)
查询通常更清晰: