Tôi có truy vấn này LINQ:Làm thế nào để sửa đổi chỉ một hoặc hai trường trong dự báo LINQ?
List<Customers> customers = customerManager.GetCustomers();
return customers.Select(i => new Customer {
FullName = i.FullName,
Birthday = i.Birthday,
Score = i.Score,
// Here, I've got more fields to fill
IsVip = DetermineVip(i.Score)
}).ToList();
Nói cách khác, tôi chỉ muốn một hoặc hai lĩnh vực của danh sách các khách hàng phải được sửa đổi dựa trên một điều kiện, trong phương thức kinh doanh của tôi. Tôi đã có hai cách để thực hiện điều này,
- Sử dụng
for...each
vòng lặp, để lặp qua khách hàng và sửa đổi lĩnh vực (phương pháp bắt buộc) - Sử dụng LINQ chiếu (cách tiếp cận declarative)
Có bất kỳ kỹ thuật nào được sử dụng trong truy vấn LINQ, để chỉ sửa đổi một thuộc tính trong phép chiếu? Ví dụ: một cái gì đó như:
return customers.Select(i => new Customer {
result = i // telling LINQ to fill other properties as it is
IsVip = DetermineVip(i.Score) // then modifying this one property
}).ToList();
Một lưu ý trước khi thực hiện việc này là bạn phải cẩn thận một chút. Ví dụ, nếu bạn làm 'customer.FullName + =" foo "' và bạn kết thúc liệt kê bộ sưu tập hai lần, bạn sẽ nhận được một số kết quả khá thú vị. –