假设我有一个Customer类,它有一个属性FirstName.然后我有一个List.
可以使用LINQ来查找列表中是否有一个客户在一个语句中使用Firstname ='John'..怎么样?
zvo*_*kov 437
LINQ定义了一个非常适合解决这个问题的扩展方法:
using System.Linq;
...
    bool has = list.Any(cus => cus.FirstName == "John");
确保你引用System.Core.dll,这就是LINQ所在的地方.
Jon*_*eet 100
zvolkov的答案是一个完美的答案,以确定是否有这样的客户.如果您之后需要使用客户,您可以:
Customer customer = list.FirstOrDefault(cus => cus.FirstName == "John");
if (customer != null)
{
    // Use customer
}
我知道这不是你问的问题,但我认为我会抢先一个后续问题:)(当然,这只找到第一个这样的客户......找到所有这些,只需使用一个正常where条款.)
Mik*_*ton 23
关注问题的一个选项(如何找到可能有任意名字的客户):
List<string> names = new List<string>{ "John", "Max", "Pete" };
bool has = customers.Any(cus => names.Contains(cus.FirstName));
或者从类似列表的csv中检索客户
string input = "John,Max,Pete";
List<string> names = input.Split(',').ToList();
customer = customers.FirstOrDefault(cus => names.Contains(cus.FirstName));
jms*_*era 10
使用Linq你有很多可能性,这里没有使用lambdas:
//assuming list is a List<Customer> or something queryable...
var hasJohn = (from customer in list
         where customer.FirstName == "John"
         select customer).Any();