如何按IEnumerable属性值进行分组

Alm*_*mis 3 c# linq

可以说我有

class Class1 A {
    int Id;
    IEnumerable<Class2> B;
}

class Class2 B {
    string Title;
}
Run Code Online (Sandbox Code Playgroud)

所以,如果我有(以json格式)

{Id: 0, B: [{"Title": "a"}, {"Title": "b"}, {"Title": "c"} ]}
Run Code Online (Sandbox Code Playgroud)

我想分组,Title结果就是这样

 { {"Id": 0, "Title": "a"}, {"Id": 0, "Title": "b"}, {"Id": 0, "Title": "c"} };
Run Code Online (Sandbox Code Playgroud)

首选LINQ解决方案.试图做:

var result = A.GroupBy(x => x.B)
Run Code Online (Sandbox Code Playgroud)

(我希望这不会起作用)和

var result = A.SelectMany(x => x.B).GroupBy(x => x)
Run Code Online (Sandbox Code Playgroud)

但后来我只有头衔.我怎么能这样做?

D S*_*ley 7

你没有分组,你正在做相反的事 - 扁平化 - 这是通过以下方式完成的SelectMany:

A.SelectMany(a => a.B, (a, b) => new {a.Id, b.Title});
Run Code Online (Sandbox Code Playgroud)