2
我有一个简单的LINQ问题:LINQ化合物聚合
我有一个FooBars的集合。 Foobar酒店拥有foo酒店和酒吧。 我想汇总foo和bar而不用通过我的foobar集合多次运行。
即,我想要的东西相当于SQL:
SELECT SUM(Foo), SUM(Bar) From FooBars
或
int fooSum, barSum;
foreach (var foobar in foobars)
{
fooSum += foobar.Foo;
barSum += foobar.Bar;
}
是否有与化合物写在LINQ选择(或类似),优雅的方式?
正是我在找的东西。谢谢。 – Holstebroe 2011-04-07 12:44:09
@LukeH:当foobars包含很多元素时,它会不会创建大对象开销,因为您正在为每次迭代创建一个匿名类型的新实例? – 2011-04-07 12:58:52
@Daniel:是的,确实如此,如果你也使用过类似“Tuple”的东西,它们也适用,因为它们也是ref类型。我想你可以创建一个自定义的结构来完成这个工作,或者(错误地)使用一个内建的结构体,比如'KeyValuePair '。我想你也可以使用'int [2]''作为累加器,并在每次迭代时改变它。有了这些建议,它变得非常糟糕,一个'foreach'循环肯定是更好的选择。 –
LukeH
2011-04-07 13:03:48