让我们说我有一个对象清单Cat {名称,年龄,大小,体重等}。现在,让我们想象一下“猫名单”。我想做的是创建一个新的CatDataView列表:
cats.Select(cat => new CatDataView{
Name = cat.Name,
Age = cat.Age,
Size = cat.Size,
Weight = Age + Size})
是否可以通过某种方式实现体重=年龄+身材?这是一个更复杂的问题,其中Age和Size是复杂的LINQ查询。
答案 0 :(得分: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;
}
示例属性正在使用表达式主体introduced in C# 6。
答案 1 :(得分:1)
哪个部分很复杂?像这样使用它:
var result = cats.Select(cat => new CatDataView{
Name = cat.Name,
Age = cat.Age,
Size = cat.Size,
Weight = cat.Age + cat.Size}).ToList()