gpt4 book ai didi

c# - linq聚合嵌套计数

转载 作者:行者123 更新时间:2023-11-30 22:15:18 25 4
gpt4 key购买 nike

我有以下类(class):

class Outer
{
public ICollection<Inner> Inners
}

class Inner
{
public ICollection<Inner> Inners
}

我想按内部和嵌套内部的总数降序排列外部列表。

例如:

如果我有 2 个外层:第一个有 3 个内层的集合,每个都有 1 个嵌套的内层,那么总数是 5。

第二个有例如可以有 2 个内部的集合,每个有 3 个嵌套的内部 then总数是 2 + 3 + 3 = 8

因此在返回结果中第二个例子应该是第一个。

有人吗? :)

最佳答案

首先,构建一个递归方法来计算 Inner 对象内的 Inner 对象,包括它自身:

public static int Count(Inner inner)
{
var count = 1;
if (inner.Inners != null && inner.Inners.Any())
count += inner.Inners.Sum(x => Count(x));

return count;
}

然后你就可以下单了:

var result = outers.OrderBy(o => o.Inners.Sum(i => Count(i)));

关于c# - linq聚合嵌套计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18041015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com