假设我有
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)
但是我只有标题。我怎么能做到呢?
你没有分组,你正在做相反的事情- 平坦化 -这是用SelectMany
:
A.SelectMany(a => a.B, (a, b) => new {a.Id, b.Title});