LINQ C#如何将属性设置为其他两个的总和

Cat*_*tea -5 c# linq

假设我有一个对象列表Cat {名称,年龄,大小,重量等}.现在让我们想象一下List猫.我想要做的是创建一个新的CatDataView列表:

cats.Select(cat => new CatDataView{
    Name = cat.Name,
    Age = cat.Age,
    Size = cat.Size,
    Weight = Age + Size})
Run Code Online (Sandbox Code Playgroud)

是否有可能以某种方式做到这个重量=年龄+大小?这是一个更复杂的问题,其中Age和Size是复杂的LINQ查询.

kaf*_*opp 5

由于您的"复杂LINQ查询"已经获得了要添加到模型对象中的值,因此可以使Weight属性getter计算值而不是执行另一个查询:

public class CatDataView
{
    public string Name { get; set; }
    public int Age { get; set; }
    public int Size { get; set; }
    public int Weight => Age + Size;
}
Run Code Online (Sandbox Code Playgroud)

示例属性使用表达式主体,在C#6中引入.