Nói rằng tôi có một lớp học Customer
có một tài sản FirstName
. Rồi tôi có một List<Customer>
.
LINQ có thể được sử dụng để tìm xem danh sách có khách hàng Firstname = 'John'
trong một tuyên bố không .. bằng cách nào?
Nói rằng tôi có một lớp học Customer
có một tài sản FirstName
. Rồi tôi có một List<Customer>
.
LINQ có thể được sử dụng để tìm xem danh sách có khách hàng Firstname = 'John'
trong một tuyên bố không .. bằng cách nào?
Câu trả lời:
LINQ định nghĩa một phương thức mở rộng hoàn hảo để giải quyết vấn đề chính xác này:
using System.Linq;
...
bool has = list.Any(cus => cus.FirstName == "John");
đảm bảo bạn tham khảo System.Core.dll, đó là nơi LINQ sống.
Câu trả lời của zvolkov là câu trả lời hoàn hảo để tìm hiểu xem có khách hàng nào như vậy không. Nếu bạn cần sử dụng khách hàng sau đó, bạn có thể làm:
Customer customer = list.FirstOrDefault(cus => cus.FirstName == "John");
if (customer != null)
{
// Use customer
}
Tôi biết đây không phải là những gì bạn đang hỏi, nhưng tôi nghĩ rằng tôi đã đặt trước một câu hỏi tiếp theo :) (Tất nhiên, điều này chỉ tìm thấy khách hàng đầu tiên như vậy ... để tìm tất cả trong số họ, chỉ cần sử dụng một where
mệnh đề bình thường .)
Một tùy chọn cho câu hỏi tiếp theo (làm thế nào để tìm một khách hàng có thể có bất kỳ số lượng tên nào):
List<string> names = new List<string>{ "John", "Max", "Pete" };
bool has = customers.Any(cus => names.Contains(cus.FirstName));
hoặc để lấy khách hàng từ csv của danh sách tương tự
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");
john sẽ là null nếu không có khách hàng tồn tại với tên đầu tiên của "John".
Hãy thử điều này, tôi hy vọng nó sẽ giúp bạn.
if (lstCustumers.Any(cus => cus.Firstname == "John"))
{
//TODO CODE
}