You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需硬编码列名创建动态哈希表的实现方案咨询

实现方案

可以实现,你原有代码的核心问题是仅创建了1个PS对象,循环内反复给同一个对象追加属性,自然无法得到多条目、动态列的列表结构。

正确的实现逻辑是为每个条目单独创建PS对象,所有对象存入统一数组,Powershell会自动识别所有对象中出现过的属性作为列,缺失属性的条目对应列自动留空,不需要提前硬编码所有50个可选列。

示例实现代码:

# 初始化空数组存储所有条目对象
$itemList = @()

foreach ($item in $items) {
    # 单条目标初始化,先赋值固定的第一列Item(Id)
    $currentItem = [PSCustomObject]@{
        Item = $item.Id
    }
    # 遍历当前条目的所有子特性,动态追加属性
    foreach ($sub in $item.SubFeaturePairs) {
        $subFeatureName = $sub.Name
        $subFeatureValue = $sub.Value
        # -Force参数避免重复添加同属性时报错
        $currentItem | Add-Member -NotePropertyName $subFeatureName -NotePropertyValue $subFeatureValue -Force
    }
    # 将当前条目加入数组
    $itemList += $currentItem
}

# 输出验证,自动对齐所有动态列
$itemList | Format-Table -AutoSize

# 如需导出CSV也可以直接调用,列会自动补全
# $itemList | Export-Csv -Path "./output.csv" -NoTypeInformation -Encoding UTF8

执行后输出的结构和你给出的预期示例完全一致,自动适配所有出现过的子特性作为列,未配置的子特性对应位置为空。


内容的提问来源于stack exchange,提问作者Baequiraheal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 18:27:03