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

PowerShell遍历字典值数组时出现扁平化问题,求解决方法

PowerShell有序字典遍历异常的原因与解决方法

问题原因

你的遍历逻辑存在两个关键错误:

  • 外层foreach($Key in $dictionary)遍历的是有序字典的键值对条目对象,每个对象包含Key(键名)和Value(对应数组)两个属性,而非单独的键。
  • 你错误使用了$Key.Values(复数),实际每个条目只有一个对应的值数组,应该用$Key.Value(单数)。当你调用$Key.Values时,得到的是包含整个数组的集合,内层foreach仅执行一次;而PowerShell在字符串插值时,会将数组元素自动用空格拼接成单个字符串,导致你看到的扁平化输出。

另外,直接打印数组时PowerShell会自动遍历元素逐个输出,这是PowerShell对数组类型的默认输出行为,和字符串插值的逻辑不同。

正确实现方式

方式一:修正原遍历逻辑

foreach($entry in $dict){
    foreach($item in $entry.Value){
        "New string with $item"
    }
}

方式二:遍历字典键名(更直观)

foreach($keyName in $dict.Keys){
    foreach($item in $dict[$keyName]){
        "New string with $item"
    }
}

两种方式都会输出你预期的结果:

New string with value1
New string with value2
New string with value3
New string with value1
New string with value2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:15:46