如何按IEnumerable属性值分组

3

假设我有

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)

但是我只有标题而已。我该怎么做呢?
1个回答

7

您不是在进行分组,而是相反的操作——执行展开操作,这可以通过使用SelectMany函数来完成:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接