2010-07-08 38 views
1

我無法在列表中找到任何FindAll方法,我如何從列表中選擇對象響應特定條件而不使用舊的迭代方法?findall在列表中<T>

List<oPage> mylist = new List<oPage>(); 

我的oPage類有一個名爲Title類型的屬性。

我在myList中添加了一些oPage項。

現在我想選擇mylist中包含單詞'abc'的標題中的所有項目,並返回IEnumerable中的所有項目。

怎麼可能?

感謝您的幫助。

+4

用什麼編程語言? – pakore 2010-07-08 09:25:27

+0

您使用的是什麼版本的.Net框架? – GenericTypeTea 2010-07-08 09:35:06

回答

6

如果您使用.NET 3.5或更高版本,你可以使用LINQ來做到這一點

mylist.Where(p => p.Title.Contains("abc")); 
2

的的FindAll方法返回一個List,但你可以只投的結果,一個IEnumerable<oPage>

List<oPage> mylist = GetYourList(); 

IEnumerable<oPage> results = (IEnumerable<oPage>)myList.FindAll(
    delegate(oPage p) 
    { 
     return p.Title.Contains("abc"); 
    } 
); 
+1

是的,正好。如果您使用的是C#3.0+,請儘量使用lambda表達式而不是匿名委託。 – Noldorin 2010-07-08 09:34:48