什么是LINQ / Lambda相当于Select Count(*),SUM(someColumn)来自SomeTable

时间:2014-09-29 00:04:09

标签: c# linq lambda

我认为我不应该按特定列进行分组,以便在LINQ或lambda表达式中返回SUM和COUNT的聚合。

是否有一种快速有效的方法可以在LINQ中重现以下T-SQL查询或作为Lambda表达式

SELECT COUNT(*), SUM(SomeIntegerColumn) From SomeTable

也许有一些我缺少的东西

2 个答案:

答案 0 :(得分:6)

试试这个:

from x in SomeTable
group x by 1 into g
select new
{
     Count = g.Count(),
     Sum = g.Sum(x => x.SomeIntegerColumn)
}

诀窍是"虚拟"分组,可让您在一个查询中计算多个内容。

答案 1 :(得分:0)

如果你真的想在没有小组的情况下这样做,你可以:

var sumCount = 
    new { count = yourCollection.Count(), sum = yourCollection.Sum(i => i.SomeIntegerColumn) };