我有此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();

换句话说,我只希望在我的业务方法中根据条件修改客户列表的一个或两个字段。我有两种方法可以做到这一点,
  • 使用for...each循环来遍历客户并修改该字段(命令式方法)
  • 使用LINQ投影(声明性方法)

  • 在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();
    

    最佳答案

    您可以使用

    return customers.Select(i => {
        i.IsVip = DetermineVip(i.Score);
        return i;
    }).ToList();
    

    关于c# - 首页> C#>如何只修改LINQ投影中的一个或两个字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15378257/

    10-16 08:01