c# - LINQ 中长类型的 Sum 方法

标签 c# linq

我怎样才能得到长类型的一些项目的总和...这是我的代码:

using (gEn myEntities = new gEn)
{
var load = (from items in myEntities.Orders
select items.PayO).DefaultIfEmpty(0).Sum();
}

但是 Sum 给了我 int...我还想知道 DefaultIfEmpty 方法在用于 long 类型时是否与 Sum 方法有任何冲突...在此先感谢...

最佳答案

Sum返回 select 中使用的表达式返回的任何类型(前提是它是已定义的重载之一)。如果你想返回一个 long 然后转换 items.PasO:

var load = (from items in myEntities.Orders
            select (long)(items.PayO)
           )
           .DefaultIfEmpty(0).Sum();

I also wants to know if DefaultIfEmpty method has any conflict with Sum method when use it for long type

不,DefaultIfEmpty 适用于任何 类型,包括long。只要该类型有 Sum 重载,它就可以正常工作。

关于c# - LINQ 中长类型的 Sum 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19848490/

相关文章:

c# - 无法在 C#/ASP.NET 中调试静态 Web 方法

C# bitblt位图渲染控件

c# - 检查 xml 中的文本值

c# - 使用 linq 在某个日期范围内每月排名前 5 的客户端性能

c# - Linq to Xml 查询子节点

c# - 在 LINQ 的 Entity Framework 中传入实体的属性

c# - 哪种查询更适合在 Entity Framework 中查询概念模型?

c# - 如何在 c# 中使用 foreach 在列表中创建列表?

c# - 如何使用反射将新项目添加到集合中

c# - 不支持客户端 GroupBy