[英]PowerShell index value of PSObject
因此,下面的Object and Foreach循环正是按照我的需要去做,即找出每行是偶数还是奇数。
$anon = @()
$anon += [PSCustomObject] @{ Name = "i am a thing" ; Location = "1" ; Value = $false }
$anon += [PSCustomObject] @{ Name = "I also do stuff" ; Location = "2" ; Value = $false }
$anon += [PSCustomObject] @{ Name = "I have been known to do stuff" ; Location = "3" ; Value = $true }
$anon += [PSCustomObject] @{ Name = "I do nothing" ; Location = "4" ; Value = $true }
Foreach ( $anonauth in $anon ) {
If ( $anonauth.location % 2 -eq 0 ) {
"I am even, and will do X"
}
Else {
"I am odd, and will do y"
}
}
我想知道的是,有没有一种方法可以执行相同的任务而没有“位置”作为IF偶/奇的参考点?
我的对象中有四行,是否可以使用[0],[1],[2],[3]作为计算参考?
那有意义吗? 当我确定它已经存在时,拥有一个参考号似乎是一种浪费?
您可以使用“老派” for循环 :
$anon = @()
$anon += [PSCustomObject] @{ Name = "i am a thing" ; Value = $false }
$anon += [PSCustomObject] @{ Name = "I also do stuff" ; Value = $false }
$anon += [PSCustomObject] @{ Name = "I have been known to do stuff" ; Value = $true }
$anon += [PSCustomObject] @{ Name = "I do nothing"; Value = $true }
for( $i =0; $i -lt $anon.Count; $i++ ) {
If ( $i % 2 -eq 0 ) {
"I am even, and will do X"
}
Else {
"I am odd, and will do y"
}
}
您可以在foreach循环中实现一些$counter
变量,以跟踪到目前为止已迭代的项目数:
$counter = 0
Foreach ( $anonauth in $anon ) {
$counter += 1 # or, use $counter++
If ( $counter % 2 -eq 0 ) {
"I am even, and will do X"
}
Else {
"I am odd, and will do y"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.