所以我有这个类结构:
public class ObjectCode
{
public string Code { get; set; }
}
class Configuration
{
public int Id { get; set; }
public string Name { get; set; }
public IEnumerable<ObjectCode> Objects { get; set; }
}
我收到了来自多个提供商的Configuration
列表。我的问题是我不知道如何通过Id对这些对象进行分组,并将结果实体中所有ObjectCode
个对象的不同Configuration
对象放入。
答案 0 :(得分:2)
在GroupBy
中的每个群组中使用SelectMany
:
var res = congigs
.GroupBy(c => new {c.Id, c.Name})
.Select(g =>
new Configuration {
Id = g.Key.Id
, Name = g.Key.Name
, Objects = g
.SelectMany(c => c.Objects)
.GroupBy(c => c.Code)
.Select(gg => gg.First())
}
).ToList();
以上假设具有相同Config
的{{1}}个对象也具有相同的Id
s。