2

我需要在 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);

我现在想通过传入像 eventItem2 这样的 EventItem 在列表中查找事件。如何搜索和返回类似 EventItem found = eventItems.Select(eventItem2); 的项目

干杯,

小号

4

2 回答 2

7

使用 LINQ,您可以:

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

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

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

于 2009-06-26T17:53:57.423 回答
2

Linq 提供了一个 .Where 方法,可以让您传入一个 lambda 表达式来评估您正在寻找的项目。

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

found 可能为空,因此您只需检查它是否在可查询/列表中找到

于 2009-06-26T17:53:38.500 回答