如何按IEnumerable属性值分组

本文关键字:属性 何按 IEnumerable | 更新日期: 2023-09-27 17:49:55

假设我有

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

如果我输入(json格式)

{Id: 0, B: [{"Title": "a"}, {"Title": "b"}, {"Title": "c"} ]}

我想按Title分组所以结果是

 { {"Id": 0, "Title": "a"}, {"Id": 0, "Title": "b"}, {"Id": 0, "Title": "c"} };

选择LINQ的解决方案。试着做:

var result = A.GroupBy(x => x.B)

(我预计这将不起作用)和

var result = A.SelectMany(x => x.B).GroupBy(x => x)

但是我只有标题。我怎么能做到呢?

如何按IEnumerable属性值分组

你没有分组,你正在做相反的事情- 平坦化 -这是用SelectMany:

完成的
A.SelectMany(a => a.B, (a, b) => new {a.Id, b.Title});