使用组加入 return 键值对
Using Group Join return Key Value Pair
我有两个列表,想 return 作为 Dictionary<UnitModel, IList<Model>>
当我使用 GroupJoin 时,它 returns IEnumerable<Dictioanry<UnitModel,IList<Model>>>
modelList.GroupJoin(unitList, i => i.UnitId, u => u.Id, (u, i) => new Dictionary<UnitModel, IList<Model>>
{
});
我希望是否有人知道如何使用 GroupJoin 或任何其他方式来 return 字典?
你可以这样做:
var elements = modelList.GroupJoin(unitList, i => i.UnitId, u => u.Id, (u, i) => new KayValuePair<UnitModel, IList<Model>>
{
});
var list = elements.ToList(); //execute
var result = new Dictionary<UnitModel, IList<Model>>(list);
因此,不是 return 创建 Dictionary
,而是使用 KeyValuePair
的列表来构造它。如果你想从 LinQ return a Dictionary
,你需要使用 .ToDictionary()
方法。
modelList.GroupJoin(unitList, i => i.UnitId, u => u.Id, (u, i) => new { u, i }).ToDictionary(g => g.u, g => g.i);
我有两个列表,想 return 作为 Dictionary<UnitModel, IList<Model>>
当我使用 GroupJoin 时,它 returns IEnumerable<Dictioanry<UnitModel,IList<Model>>>
modelList.GroupJoin(unitList, i => i.UnitId, u => u.Id, (u, i) => new Dictionary<UnitModel, IList<Model>>
{
});
我希望是否有人知道如何使用 GroupJoin 或任何其他方式来 return 字典?
你可以这样做:
var elements = modelList.GroupJoin(unitList, i => i.UnitId, u => u.Id, (u, i) => new KayValuePair<UnitModel, IList<Model>>
{
});
var list = elements.ToList(); //execute
var result = new Dictionary<UnitModel, IList<Model>>(list);
因此,不是 return 创建 Dictionary
,而是使用 KeyValuePair
的列表来构造它。如果你想从 LinQ return a Dictionary
,你需要使用 .ToDictionary()
方法。
modelList.GroupJoin(unitList, i => i.UnitId, u => u.Id, (u, i) => new { u, i }).ToDictionary(g => g.u, g => g.i);