在IList或IQueryable中搜索对象

时间:2009-06-26 17:50:11

标签: linq select iqueryable ilist

我需要在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这样的eventItem来查找列表中的事件。如何搜索和返回类似的项目 EventItem found = eventItems.Select(eventItem2);

干杯,

取值

2 个答案:

答案 0 :(得分:7)

使用LINQ你可以做到:

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

假设EventItem的名称是通过Name属性公开的。

item => [code]部分是您提供返回true / false的方法,以确定项目是否匹配。

答案 1 :(得分:2)

Linq提供了一个。允许你传入lambda表达式来评估你正在寻找的项目的方法。

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

发现可能为null,因此您只需要检查它是否在查询/列表中找到它