2012-09-24 38 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