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
。
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();
Sum
是System.Linq.Enumerable
中定义的IEnumerable<T>
的扩展方法。为了使用扩展方法,它需要在作用域中,因此您需要向所需的命名空间添加using。
using System.Linq;