从PowerShell中的另一个数组返回相关值
我有两个数组,其中填充了关系字符串。在foreach循环中遍历数组1时,我需要从数组2中提取值。我是如何做到这一点的?这是我的密码:从PowerShell中的另一个数组返回相关值,powershell,Powershell,我有两个数组,其中填充了关系字符串。在foreach循环中遍历数组1时,我需要从数组2中提取值。我是如何做到这一点的?这是我的密码: $contracts = @("xytt" "deff" "mnoo") $labels = @("London contract" "Dubai contract" "Glasgow contract") foreach ($contract in $
$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作为哈希表的键,并且它们是唯一的,则哈希表将在较早的时候揭示这一点。