PowerShell中如何对对象数组按相同sheet_number属性求和frame_width
PowerShell 按sheet_number分组求和frame_width的实现方法
场景1:单独计算指定sheet_number的总宽度
如果仅需要计算单个sheet_number对应的frame_width总和(比如sheet_number=1),直接使用如下代码即可:
$sheet_width = ($frames | Where-Object { $_.sheet_number -eq 1 } | Measure-Object -Property frame_width -Sum).Sum
逻辑说明:
- 用
Where-Object过滤出$frames数组中所有sheet_number匹配目标值的对象 - 用
Measure-Object指定统计frame_width属性的总和 - 最终取返回结果的
Sum属性即为所求的求和结果
场景2:一次性统计所有sheet_number对应的总宽度
如果需要批量得到所有sheet编号对应的总宽度,可以先按sheet_number分组再批量计算:
$sheet_width_list = $frames | Group-Object -Property sheet_number | ForEach-Object { [PSCustomObject]@{ sheet_number = [int]$_.Name total_frame_width = ($_.Group | Measure-Object -Property frame_width -Sum).Sum } }
结果使用说明:
执行完成后,$sheet_width_list是包含所有sheet编号和对应总宽度的对象数组,可直接筛选查询任意sheet的总宽度:
# 示例:查询sheet_number为2的总宽度 $sheet2_width = ($sheet_width_list | Where-Object sheet_number -eq 2).total_frame_width
内容的提问来源于stack exchange,提问作者Chaka
相关产品推荐
相关产品推荐

