如果我有2个嵌套循环,如何在内部循环内部引用外部循环中的当前项目?有可能吗?
$arrayA = @(1..10)
$arrayB = @(11.20)
$arrayA.ForEach({$_; $arrayb.Where({$_ -eq $_})})
答案 0 :(得分:2)
使用cmdlet而不是使用数组方法:
$arrayA | ForEach-Object -PipelineVariable item {
$arrayB.Where{$item -eq $_}
}
# shortened
$arrayA | % -pv item { $_; $arrayB.Where{$item -eq $_} }
-PipelineVariable
是在v4中引入的(基于对数组方法ForEach
和Where
的使用)。
虽然是更好的解决方案:
$arrayA.Where{$_ -in $arrayB}
答案 1 :(得分:0)
这是一个简短的示例,说明了如何在第二个数组的循环内访问第一个数组的元素的当前值:
$arrayA = @(1..10)
$arrayB = @(1..10)
$arrayA | foreach {
$tempA = $_
$arrayB | foreach {
"$tempA - $_"
}
}
只需运行代码即可获得想法。