linq . sum()不能处理Short属性

本文关键字:处理 Short 属性 不能 sum linq | 更新日期: 2023-09-27 17:54:51

我有一个对象模型,它包含一个对象列表,这些对象有一个定义为short的属性。它看起来像这样:

public class MyObject
{
   public short TheNumber { get; set;}
}
List<MyObject> TheListOfMyObjects = SomeMethodThatReturnsList();

现在我想对列表中所有对象的个数求和所以我这样写:

var TheSum = (from a in TheListOfMyObjects 
              where....
              select a.TheNumber).Sum();

我得到一个错误,说没有Sum()的定义。为什么这个不工作,我如何解决它?

编辑:

我有这个工作:

var TheCount = (from a in TheListOfMyObjects 
                where....
                select a).Count();

是的,我在using语句中有System.Linq

linq . sum()不能处理Short属性

Sum没有short (Int16)的重载,即http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx

先强制转换/解析,或者先执行.Sum(i => i)

var TheSum = (from a in TheListOfMyObjects 
          where....
          select (int)a.TheNumber).Sum();

SumSystem.Linq.Enumerable中定义的IEnumerable<T>的扩展方法。为了使用扩展方法,它需要在作用域中,因此您需要向所需的命名空间添加using。

using System.Linq;