索引到 PowerShell 值集合

Swo*_*gan 4 collections powershell

鉴于:

$settings = @{"Env1" = "VarValue1"; "Env2" = "VarValue2" }
Write-Output "Count: $($settings.Values.Count)"
Write-Output "Value 0: '$($settings.Values[0])'"
Write-Output "Value 1: '$($settings.Values[1])'"
Run Code Online (Sandbox Code Playgroud)

我得到输出:

Count: 2
Value 0 : 'VarValue2 VarValue1'
Value 1 : ''
Run Code Online (Sandbox Code Playgroud)

为什么第一个元素有两个值而第二个元素没有?如何将值作为我可以索引的集合?

Swo*_*gan 8

我想到了。解决方案是将 Values ICollection 转换为字符串数组。

和:

$values = $settings.Values -as [string[]]
Run Code Online (Sandbox Code Playgroud)

输出变成最初预期的:

Count: 2
Value 0 : 'VarValue2'
Value 1 : 'VarValue1'
Run Code Online (Sandbox Code Playgroud)

我不禁觉得这应该是默认行为。