2012-09-24 101 views
2

我有一个继承自BindingList的集合类,我可以使用Sum功能,比如myList.Sum(x=>x.Quantity)当实现IEnumerable <SqlDataRecord>不能访问'总和'功能

但是,当我实现接口IEnumerable<SqlDataRecord>我不能再使用它,x.Quantity不作为一个选项。我该如何解决这个问题?

class item 
{ 
    public decimal Quantity { get; set; } 
} 

class items : BindingList<T> 
{ 
} 

items newItems = new items(); 
items.Sum(x=>x.Quantity); 

上面的代码工作,但是当我添加下面的代码时,它不再工作。它说班级没有Sum的定义。我究竟做错了什么?

class items : BindingList<T>, IEnumerable<SqlDataRecord> 
{ 
} 
items.Sum(x=>x.?); 
+0

目前还不清楚你问这里。请显示一些代码以及您正在收到的错误 –

回答

3

当你的类不仅继承BindingList<T>myList.Sum(...)是明确呼吁从Collection<T>通过BindingList<T>的继承Enumerable<T>.Sum(myList, ...)

现在你们已经做出了类直接实现IEnumerable<SqlDataRecord>,它不再明确其中Enumerable<?>来调用Sum - 被?就是从你的BindingList继承TSqlDataRecord从您的直接执行?

因此,如果你想使你的电话像以前一样,你必须明确地(出于某种原因,我的VS报道这是“不包含定义...”,而不是作为一个模糊的电话。)

致电myList.Sum<T>(...)

+0

非常感谢,快速而准确! – ibrahim