搜索多数组并返回索引

时间:2016-03-02 16:03:42

标签: arrays powershell

我有这个数组:

$Cluster = @( ("vcdvc012", "CL-CC5-DR"),
    ("vcdvc013", "CL-CCL3-DR"))

现在我想搜索" vcdvc012"能够得到结果" CL-CC5-DR"。

最好的方法是什么? 加布里

2 个答案:

答案 0 :(得分:2)

尝试:

$Cluster | ? { $_[0] -eq 'vcdvc012' } | % { $_[1] }

答案 1 :(得分:0)

Frode有一个通用的答案,但它依赖于知道元素的位置。由于您正在处理数组,因此运算符-contains-in在这里是有益的。除非您创建了自己的自定义对象,否则选择第二个元素不会有太大变化。

$Cluster | Where-Object {$_ -contains 'vcdvc012'} | ForEach-Object{ $_[1] }
$Cluster | Where-Object {'vcdvc012' -in $_} | ForEach-Object{ $_[1] }

两者都会起作用。后者更直观,因为许多人混淆了-contains的功能。 -in已在v3.0中提供