繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM