находка в списке <T> - PullRequest
       32

находка в списке <T>

1 голос
/ 08 июля 2010

Я не могу найти какой-либо метод FindAll в своем Списке, как я могу выбрать объекты из Списка, которые отвечают определенным критериям, без использования старого метода итерации?

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

В моем классе oPage есть свойство с именем Title типа string.

Я добавил несколько пунктов oPage в myList.

Теперь я хочу выбрать все элементы в mylist, которые имеют заголовок, содержащий слово «abc», и вернуть все эти элементы в IEnumerable.

как это возможно?

Спасибо за вашу помощь.

Ответы [ 2 ]

6 голосов
/ 08 июля 2010

Если вы используете .NET 3.5 или более позднюю версию, вы можете использовать LINQ только для этого

mylist.Where(p => p.Title.Contains("abc"));
2 голосов
/ 08 июля 2010

Метод FindAll возвращает List, но вы можете просто привести результаты к IEnumerable<oPage>:

List<oPage> mylist = GetYourList();

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