Скажем, у меня есть класс Customer, у которого есть свойство FirstName. Затем у меня есть Список.
Может ли LINQ использоваться, чтобы найти, имеет ли список клиента с именем Firstname = 'John' в одном заявлении.. как?
Скажем, у меня есть класс Customer, у которого есть свойство FirstName. Затем у меня есть Список.
Может ли LINQ использоваться, чтобы найти, имеет ли список клиента с именем Firstname = 'John' в одном заявлении.. как?
LINQ определяет метод расширения, который идеально подходит для решения этой точной проблемы:
using System.Linq;
...
    bool has = list.Any(cus => cus.FirstName == "John");
убедитесь, что вы ссылаетесь на System.Core.dll, где живет LINQ.
Ответ zvolkov - это идеальный способ выяснить, есть ли такой клиент. Если вам нужно использовать клиента после этого, вы можете сделать:
Customer customer = list.FirstOrDefault(cus => cus.FirstName == "John");
if (customer != null)
{
    // Use customer
}
Я знаю, что это не то, о чем вы спрашивали, но я подумал, что я предпочту следующий вопрос:) (Конечно, это только находит первого такого клиента... найти все из них, просто используйте обычное предложение where.)
Один из вариантов ответа на вопрос (как найти клиента, у которого может быть любое количество первых имен):
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));
Используя Linq, у вас много возможностей, здесь один без использования лямбда:
//assuming list is a List<Customer> or something queryable...
var hasJohn = (from customer in list
         where customer.FirstName == "John"
         select customer).Any();
Метод, который я использовал до обнаружения .Any():
var hasJohn = (from customer in list
      where customer.FirstName == "John"
      select customer).FirstOrDefault() != null;
List<Customer> list = ...;
Customer john = list.SingleOrDefault(customer => customer.Firstname == "John");
john будет null, если клиент не существует с именем "John".
Попробуйте это, я надеюсь, это вам поможет.
 if (lstCustumers.Any(cus => cus.Firstname == "John"))
 {
     //TODO CODE
 }
customerList.Any(x=>x.Firstname == "John")
Другая возможность
if (list.Count(customer => customer.Firstname == "John") > 0) {
 //bla
}