Customer
속성 이있는 클래스가 있다고 가정 해보십시오 FirstName
. 그리고 나는이 List<Customer>
.
LINQ를 사용하여 목록 Firstname = 'John'
에 단일 명세서 로 고객이 있는지 확인할 수 있습니까? 어떻게?
답변
LINQ는이 정확한 문제를 해결하기에 완벽한 확장 방법을 정의합니다.
using System.Linq;
...
bool has = list.Any(cus => cus.FirstName == "John");
LINQ가있는 System.Core.dll을 참조하십시오.
답변
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();
답변
customerList.Any(x=>x.Firstname == "John")
답변
내가 발견하기 전에 사용한 기술 .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”인 고객이 없으면 john은 null입니다.