Linq to实体:总和

时间:2011-10-11 12:04:18

标签: linq-to-entities

我需要舍入十进制的总和?我这样做:

group => new {
rounded_sum = group.Sum(f => f.A) == null ? null : (decimal?)Decimal.Round((decimal)group.Sum(f => f.A), 0),
}

这不是很好。也许有一种更清洁的方式?

1 个答案:

答案 0 :(得分:5)

你能使用空合并运算符吗?我意识到它并没有做同样的事情,但它可能是合适的。

group => new {
   rounded_sum = Decimal.Round( group.Sum( f => f.A ) ?? 0M, 0 )
}

另一个替代方案是分两个步骤进行操作,这样可以节省两次总和操作,尽管它甚至更“笨拙”。

  ...
   group => new {
       sum = group.Sum( f => f.A )
})
.Select( g => new {
  rounded_sum = sum == null ? null : (decimal?)Decimal.Round( sum.Value, 0 )
});