使用组连接返回键值对

时间:2017-05-09 00:48:18

标签: c# linq linq-expressions

我有两个列表,并希望以[{1}}

返回

当我使用GroupJoin时,它会返回Dictionary<UnitModel, IList<Model>>

IEnumerable<Dictioanry<UnitModel,IList<Model>>>

我希望是否有人知道如何使用GroupJoin或任何其他方式返回词典?

2 个答案:

答案 0 :(得分:1)

modelList.GroupJoin(unitList, i => i.UnitId, u => u.Id, (u, i) => new { u, i }).ToDictionary(g => g.u, g => g.i);

答案 1 :(得分:0)

你可以这样做:

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);

因此,如果返回Dictionary,则使用KeyValuePair列表构建它。如果您想从LinQ返回Dictionary,则需要使用.ToDictionary()方法。