使用组加入 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);