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

PowerShell中DictionaryEntry的.value与.values调用差异及解决方法

PowerShell DictionaryEntry 集合取值差异问题解答

差异产生原因

  • PowerShell默认会对单元素返回结果做自动解包:当脚本仅返回1个DictionaryEntry对象时,返回值就是单个DictionaryEntry实例,该实例本身仅提供Value属性获取对应值,因此可以直接通过var.value读取。
  • 当返回结果包含2个及以上DictionaryEntry对象时,PowerShell会返回集合类型的结果,集合本身没有Value属性,仅提供包含所有键对应值的Values属性,因此需要调用var.values获取所有值。

单命令统一适配方案

使用PowerShell内置的@()数组子表达式运算符强制将返回结果转为数组,搭配PowerShell 3.0及以上版本默认支持的成员枚举特性,即可统一用Value属性读取所有值,无需判断元素数量:

# @() 强制包裹返回结果为数组,兼容1个/多个元素场景
$dictResults = @(你的脚本返回的DictionaryEntry集合)
$allValues = $dictResults.Value

如果需要兼容PowerShell 2.0等更低版本,可以用管道方式统一处理:

$allValues = 你的脚本返回的DictionaryEntry集合 | ForEach-Object { $_.Value }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:36:05