[英]LINQ C# How to set an attribute as sum of other two
假设我有一个对象 Cat { Name, Age, Size, Weight, etc.} 的列表。 现在让我们想象一个 List 猫。 我想要做的是创建一个新的 CatDataView 列表:
cats.Select(cat => new CatDataView{
Name = cat.Name,
Age = cat.Age,
Size = cat.Size,
Weight = Age + Size})
是否有可能以某种方式做到这个重量 = 年龄 + 尺寸? 这是针对更复杂的问题,其中 Age 和 Size 是复杂的 LINQ 查询。
由于您的“复杂 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;
}
示例属性使用的是 C# 6 中引入的表达式主体。
哪个部分复杂? 只需像这样使用它:
var result = cats.Select(cat => new CatDataView{
Name = cat.Name,
Age = cat.Age,
Size = cat.Size,
Weight = cat.Age + cat.Size}).ToList()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.