从PowerShell中的另一个数组返回相关值

从PowerShell中的另一个数组返回相关值,powershell,Powershell,我有两个数组,其中填充了关系字符串。在foreach循环中遍历数组1时,我需要从数组2中提取值。我是如何做到这一点的?这是我的密码: $contracts = @("xytt" "deff" "mnoo") $labels = @("London contract" "Dubai contract" "Glasgow contract") foreach ($contract in $

我有两个数组,其中填充了关系字符串。在foreach循环中遍历数组1时,我需要从数组2中提取值。我是如何做到这一点的?这是我的密码:

$contracts = @("xytt"
               "deff"
               "mnoo")

$labels = @("London contract"
            "Dubai contract"
            "Glasgow contract")

foreach ($contract in $contracts){
#Do stuff with $contract
#Return label associated to contract object
}

您可以使用
for
循环和索引变量代替
foreach

for ($i=0; $i -lt $contracts.Length; $i++) {
    $contract = $contracts[$i]
    $label = $labels[$i]
    Write-Host "$contract : $label"
}

您可以使用
for
循环和索引变量代替
foreach

for ($i=0; $i -lt $contracts.Length; $i++) {
    $contract = $contracts[$i]
    $label = $labels[$i]
    Write-Host "$contract : $label"
}

我同意EBGreen的观点,哈希表更适合这个任务

与Janne Tuukkanen的脚本类似,该脚本使用索引,
但是基于一个普通的ForEach

ForEach ($contract in $contracts){
    "{0} - {1}" -f $contract, $labels[$contracts.IndexOf($contract)]
}
样本输出:

xytt - London contract
deff - Dubai contract
mnoo - Glasgow contract

我同意EBGreen的观点,哈希表更适合这个任务

与Janne Tuukkanen的脚本类似,该脚本使用索引,
但是基于一个普通的ForEach

ForEach ($contract in $contracts){
    "{0} - {1}" -f $contract, $labels[$contracts.IndexOf($contract)]
}
样本输出:

xytt - London contract
deff - Dubai contract
mnoo - Glasgow contract

这两个数组是如何关联的?例如,当我查看
$contracts
中的“xytt”时,如何知道它与
$labels
中的哪个项目相关?除非你因为某种原因而陷入这种数据的排列中,否则我会考虑用不同的方式来设置数据。嗨,它们是正方形的。因此,[0]$Contract与[0]$Label等关联。仅供参考,对于相关数据,哈希或字典通常比相关数组更好。我如何将这两个数组构建到哈希表中进行查询?首先如何生成数组?这两个数组如何关联?例如,当我查看
$contracts
中的“xytt”时,如何知道它与
$labels
中的哪个项目相关?除非你因为某种原因而陷入这种数据的排列中,否则我会考虑用不同的方式来设置数据。嗨,它们是正方形的。因此[0]$合同与[0]$标签相关联,依此类推。仅供参考,对于相关数据,哈希或字典通常是比相关数组更好的数据结构。我如何将这两个数组构建到哈希表中进行查询?首先如何生成数组?这不一定是有效的假设,$contracts中的所有条目都是唯一的。@EBGreen您是对的,哈希表会在较早的时候揭示这一点。如果使用$labels作为哈希的键并且它们是唯一的,则不会。这不一定是有效的假设,$contracts中的所有条目都是唯一的。@EBGreen您是对的,如果使用$labels作为哈希表的键,并且它们是唯一的,则哈希表将在较早的时候揭示这一点。