IList <t>搜索帮助</t>

时间:2010-10-29 01:04:56

标签: c#

我有一个IList<Customer>,我想找一个姓氏为'smith'的客户。我怎么做? .where看起来可能有用,但我不理解这样做的谓词。或者有更好的方法来搜索列表吗?

谢谢, 杆

3 个答案:

答案 0 :(得分:3)

尝试此操作,假设您的IList是customers对象:

var smiths = customers.Where(c => c.LastName == "Smith");

答案 1 :(得分:2)

如果您想要第一位姓氏为“史密斯”的客户,请使用FirstOrDefault

var customer = customerList.FirstOrDefault(c => c.LastName == "smith");

if (customer != null)
  // do code;

如果您希望所有姓氏为“史密斯”的客户,请使用Where

var customers = customerList.Where(c => c.LastName == "smith");

foreach(var customer in customers)
  // do code;
祝你好运!

答案 2 :(得分:2)

扩展其他帖子:

任何采用谓词的Where()方法都需要该谓词返回布尔值。该谓词将针对集合的每个元素进行评估,对于谓词返回true的每个元素,该元素将包含在结果集合中。

请注意,Where()会在您的方案中返回一个集合(我相信IEnumerable<Customer>,但我现在没有打开VS来验证)您需要从中获取单个元素使用First()Single()(以及其他)。您还可以对Single()Last()等任何单一方法使用谓词,以避免链接Where(x => blah).Single()