如何在 powershell 中查找和获取多维数组的值?

How do I find and get value from multi dimensional array in powershell?

基本上我有一个类似于

的数组
areaCodes = @ (
 @("310", "LA"),
 @("212", "NY"),
 @("702", "LV")
)

我想拥有它,例如,如果我有一个变量 $code = 2 查找它是否在列表中,如果在,则获取与之关联的值。

类似

if($areaCodes.contains($code))
{
 WRITE-HOST $areaCodes[1]
}

这将输出 NY

如何在 powershell 中执行此操作?还是有更有效的方法来做到这一点?

您需要枚举数组中的所有数组才能正常工作,例如:

($areaCodes | Where-Object { $_ -contains $code })[1] # => NY

或使用实际循环:

foreach($array in $areaCodes) {
    if($array -contains $code) {
        $array[1]
        break
    }
}

但退一步说,hash table 似乎更适合您的用例:

$code = 212
$areaCodes = @{
    310 = "LA"
    212 = "NY"
    702 = "LV"
}

$areaCodes[$code] # => NY