我想要removeAll方法來移除observableCollection中的項目。該代碼是:如何將擴展方法放入庫中?
public static class ExtensionMethods
{
public static int Remove<T>(
this ObservableCollection<T> coll, Func<T, bool> condition)
{
var itemsToRemove = coll.Where(condition).ToList();
foreach (var itemToRemove in itemsToRemove)
{
coll.Remove(itemToRemove);
}
return itemsToRemove.Count;
}
}
我有我的主要項目,我創建了與集合相關事業一個新的DLL項目,所以我在這第二個項目創建一個具有該代碼的類。
不過,我並沒有在提供給的ObservableCollection RemoveAll方法,我的意思是:
ObservableCollection<MyType> o = new ObservableCollection<MyType>();
o.RemoveAll ??
不可用。我在第二個項目的主項目中添加了一個新的參考資料,並且包含了該庫的使用。
如果在我的主項目中創建一個類,那麼該方法可用。但我想有一個帶有這種擴展方法的庫,可以將這些方法應用到另一個項目中,而不是在每個項目中添加一個新類。
它應該是絕對好的。你是否肯定*你已經包含了相關的'using'指令?如果你輸入'ExtensionMethods.',Intellisense會彈出'Remove'方法嗎? (請注意,您尚未聲明'RemoveAll'方法;您已聲明瞭'Remove'方法。) –
是true,但這不是問題。問題是靜態類的名稱。如果我將ExtensionMethods更改爲ObservableCollection,那麼我可以使用該方法。 –
@ÁlvaroGarcía我真的懷疑,因爲該方法沒有命名爲'RemoveAll',而是'Remove'。看到我的答案。 –