Поиск объекта в IList или IQueryable - PullRequest
2 голосов
/ 26 июня 2009

Мне нужно найти соответствие элемента в списке IQueryable. У меня есть список следующим образом:

IQueryable<EventItem> eventItems = new Queryable<EventItem>();
EventItem eventItem1 = new EventItem("Event 1");
EventItem eventItem2 = new EventItem("Event 2");
eventItems.Add(eventItem1);
eventItems.Add(eventItem2);

Теперь я хочу найти событие в списке, передав EventItem, например, eventItem2. Как мне найти и вернуть товар EventItem found = eventItems.Select (eventItem2);

Приветствия

S

Ответы [ 2 ]

7 голосов
/ 26 июня 2009

с помощью LINQ вы можете сделать:

EventItem found = eventItems.SingleOrDefault(item => item.Name == "Event 2");

Предполагается, что имя для EventItem предоставляется через свойство Name.

В части item => [code] вы предоставляете метод, который возвращает истину / ложь, чтобы определить, совпадают элементы или нет.

2 голосов
/ 26 июня 2009

Linq предоставляет метод .Where, который позволяет передавать лямбда-выражение для оценки искомого элемента.

EventItem found = eventItems.Where(e => e == eventItem2).SingleOrDefault();

found может иметь значение null, поэтому вам просто нужно проверить это, чтобы увидеть, было ли оно найдено в queryable / list

...