私はこの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();
つまり、私のビジネス メソッドでは、条件に基づいて、顧客のリストの 1 つまたは 2 つのフィールドのみを変更したいと考えています。これを行うには2つの方法があります。
for...each
ループを使用して顧客をループし、そのフィールドを変更します (必須のアプローチ)- LINQ プロジェクションの使用 (宣言型アプローチ)
プロジェクションで1つのプロパティのみを変更するために、LINQクエリで使用するテクニックはありますか? たとえば、次のようなものです。
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();