我有一个集合A,其内部有一个集合B作为其属性之一。我想根据内部集合的属性值对外部集合A的所有项进行分组。
class A
{
string A;
List<B> NestedColl;
}
class B
{
string key;
string name;
int id;
}
现在我有了
List<A> localCollection = new List<A>();
我想根据嵌套集合中Id的值对所有集合项进行分组。
答案 0 :(得分:4)
从概念上讲,这是一个奇怪的事情,试图包裹一个人的头,但这将做你想要的:
localCollection
.SelectMany(a => a.NestedColl.Select(b => new { A = a, Id = b.id}))
.GroupBy(x => x.Id);
答案 1 :(得分:0)
不完全确定你想要什么。
如果你有这个
class A
{
string A;
B NestedB;
}
class B
{
string key;
string name;
int id;
}
你可以这样做
localCollection.GroupBy(a=>a.NestedB.id);
但是你有一个嵌套的集合,所以每个B可以有一个不同的id,你会分组?
你可以像第一个一样使用第一个
localCollection.GroupBy(a=>a.NestedColl.First().id);
或者你可以选择像这样的第一大
localCollection.GroupBy(a=>a.NestedColl.Max(b=>b.id));
还有其他选择,但不知道你想要什么,我可以更具体。