C# 在linqtosql中,我可以在groupby中有一个select(和groupby)吗?
我有以下课程:C# 在linqtosql中,我可以在groupby中有一个select(和groupby)吗?,c#,.net,linq,linq-to-sql,C#,.net,Linq,Linq To Sql,我有以下课程: class XXX { int XXXType{get;set;} List<YYY> Children{get;set;} } class YYY { int YYYType{get;set;} } 像这样的 //样本数据 var xxxList = new List<XXX> { new XXX() { XXXType = 1,
class XXX
{
int XXXType{get;set;}
List<YYY> Children{get;set;}
}
class YYY
{
int YYYType{get;set;}
}
像这样的
//样本数据
var xxxList = new List<XXX> {
new XXX()
{
XXXType = 1,
Children = new List<YYY>() {
new YYY() {YYYType = 1},
new YYY() {YYYType = 1},
new YYY() {YYYType = 2},
new YYY() {YYYType = 2}
}
}
};
结果:
XXX类型:1,XXX类型数:1,子类型数:2
var xxxList = new List<XXX> {
new XXX()
{
XXXType = 1,
Children = new List<YYY>() {
new YYY() {YYYType = 1},
new YYY() {YYYType = 1},
new YYY() {YYYType = 2},
new YYY() {YYYType = 2}
}
}
};
foreach(var x in xxxList.GroupBy(info => info.XXXType)
.Select(group => new {
key = group.Key,
Count = group.Count(),
YYYChildren = (from y in xxxList.SelectMany(z=>z.Children).GroupBy(y=>y.YYYType, (key, values) =>
new {
YYYType = key,
Count = values.Count()
}) select y.YYYType)
}))
{
Console.WriteLine("XXXType :{0}, Number Of XXXTypes :{1}, Number Of YYYChildren :{2}", x.key, x.Count, x.YYYChildren.Count());
}