gpt4 book ai didi

c# - LINQ 复合聚合

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

我有一个简单的 LINQ 问题:

我有一个 FooBar 集合。 Foobar 有一个 foo 属性和一个 bar 属性。我想聚合 foo 和 bar 而不是多次运行我的 foobars 集合。

即。我想要类似于 SQL 的东西:

SELECT SUM(Foo), SUM(Bar) From FooBars

int fooSum, barSum;
foreach (var foobar in foobars)
{
fooSum += foobar.Foo;
barSum += foobar.Bar;
}

在 LINQ 中是否有一种使用复合选择(或类似方法)编写此代码的优雅方法?

最佳答案

你可以使用 Aggregate ,以匿名类型或元组的形式保存运行总计。尽管我自己可能会使用普通的 foreach 循环。

var result = foobars.Aggregate(new { FooSum = 0, BarSum = 0 },
(a, x) => new {
FooSum = a.FooSum + x.Foo,
BarSum = a.BarSum + x.Bar
});

Console.WriteLine("FooSum=" + result.FooSum + ", BarSum=" + result.BarSum);

关于c# - LINQ 复合聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5580997/

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