Скажіть, у мене клас, Customer
який має властивість FirstName
. Тоді у мене є List<Customer>
.
Чи можна використовувати LINQ, щоб дізнатися, чи є в списку клієнт із Firstname = 'John'
однією заявою .. як?
Скажіть, у мене клас, Customer
який має властивість FirstName
. Тоді у мене є List<Customer>
.
Чи можна використовувати 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));
customerList.Any(x=>x.Firstname == "John")
List<Customer> list = ...;
Customer john = list.SingleOrDefault(customer => customer.Firstname == "John");
Джон буде недійсним, якщо не існує клієнта з ім'ям "Джон".
Спробуйте це, я сподіваюся, що вам це допоможе.
if (lstCustumers.Any(cus => cus.Firstname == "John"))
{
//TODO CODE
}