linq .Sum()不使用Short属性

时间:2013-01-20 19:22:58

标签: c# linq

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

public class MyObject
{
   public short TheNumber { get; set;}
}

List<MyObject> TheListOfMyObjects = SomeMethodThatReturnsList();

现在我想对列表中所有对象的TheNumber做一笔总结,所以我写的是:

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。不知道为什么会掉线。

3 个答案:

答案 0 :(得分:9)

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

先进行演员表解析或进行.Sum(i => i)

答案 1 :(得分:1)

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

答案 2 :(得分:0)

SumSystem.Linq.Enumerable中定义的IEnumerable<T>的扩展方法。为了使用扩展方法,它需要在范围内,因此您需要将use添加到所需的命名空间。

using System.Linq;