我有一个List和MyClass:
public class MyClass
{
public bool Selected { get; set; }
public Guid NoticeID { get; set; }
public Guid TypeID { get; set; }
}
我的问题是,如何将此列表转换为Dictionary<Guid, List<Guid>>
,其中字典键是TypeID
属性中的GUID,值是所有{{1}的列表对应于NoticeID
的值。我试过这样:
TypeID
但这会返回list.GroupBy(p => p.TypeID).ToDictionary(p => p.Key, p => p.ToList())
,我想要一个Dictionary <Guid, List<MyClass>>
。
答案 0 :(得分:18)
好吧,当您分组时,您可以为该组的每个元素指定所需的值:
var dictionary = list.GroupBy(p => p.TypeID, p => p.NoticeID)
.ToDictionary(p => p.Key, p => p.ToList());
但是,我强烈考虑使用查找而不是字典:
var lookup = list.ToLookup(p => p.TypeID, p => p.NoticeID);
一般来说,查找更加清晰: