c# - 总结在列表属性列表中
问题描述
我有以下结构,我想总结一个属性列表
public class Space
{
public AirBalance AirBalance { get; set; } = new();
}
public class AirBalance
{
public bool AllowVariableExhaust { get; set; }
public SpaceVentilationAirflow VentilationAirflow { get; set; } = new();
}
public class SpaceVentilationAirflow
{
public List<A621VentilationAirflow> A621VentilationAirflows { get; set; } = new();
}
public class A621VentilationAirflow
{
public double BreathingZoneVentilation { get; set; }
}
我试图总结 A621VentilationAirflow 的 BreathingZoneVentilation 的所有空间,我的呼吸区通风值为 1115.05。当我使用下面的代码进行总结时,即使我有两个空格和一个A621VentilationAirflow
存在的对象列表,它也总是给我相同的值。
Spaces?.Sum(a => a?.AirBalance?.VentilationAirflow?.A621VentilationAirflows.Sum(a => a.BreathingZoneVentilation))
谁能让我知道我在上面的代码中做错了什么?提前谢谢了
解决方案
我觉得您需要将代码更改为:
Spaces?.Sum(a => a?.AirBalance?.VentilationAirflow?.A621VentilationAirflows.Sum(b => b.BreathingZoneVentilation))
此外,使用投影 (Select / SelectMany) 您可以获得更易读的 (imo) 查询:
var y = spaces
.Select(c => c.AirBalance)
.Select(c => c.VentilationAirflow)
.SelectMany(c => c.A621VentilationAirflows)
.Sum(c => c.BreathingZoneVentilation);
推荐阅读
- arrays - 来自 2 个列表/数组的一对中的最小元素
- python - mxnet.base.MXNetError:形状不一致,提供 = [32,4],推断形状 = [32,1]
- angular - 在 pdf 和图像上绘图
- r - OpenCPU 公共服务器是否仍然可用?API 规范似乎已更改
- python - 如何将扩展父类的属性获取到其嵌套的子类?
- javascript - 使用 AJAX 通过 Id 获取数据 | JSON ASP.NET
- apache-flink - 如何使用 java 在 Apache flink 中读取 json 文件格式
- python - Django,用户注册后创建新的配置文件模式时出错
- javascript - 如何使用 JavaScript 或任何方式在移动设备中停止引导 4 轮播自动滑动
- python - Python语音识别卡住了(Mac)