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