限制每个对象
Limit foreac-object
我正在遍历一个数组,但我只想要满足我条件的前 10 个结果。但我不知道从哪里开始。我在想我需要一个像 for ($i=0;$i -le 10;$i++)
这样的 for 循环并在 IF 语句为真时执行 $i-- 。我是个菜鸟:D
$result | ForEach-Object {
if (($_.City -contains 'Oklahoma') -or ($_.City -like 'Chicago')){
}else {
$dosomething
}
}
我想出了一个办法。有什么other/better方法可以做到吗?
$i=0;
$result | ForEach-Object {
if (($_.City -contains 'Oklahoma') -or ($_.City -like 'Chicago') -or (($i -ge 10)){}
else {
$dosomething
$i++;
}
}
通常的方法是为结果保留一个计数器。当找到所需数量的结果时,break
语句将终止循环。像这样,
$hits = 0
$maxresults = 10
$result | ForEach-Object {
if ($_ -match "whatever" ){
++$hits
do-stuff
} else {
do-something-else
}
if($hits -ge $maxresults) { break }
}
如果您正在寻找单线,那么这可能会有所帮助:
$top10 = $result | Where-Object {($_.City -contains 'Oklahoma') -or ($_.City -like 'Chicago')} | Select-Object -First 10 -Skip 0
我正在遍历一个数组,但我只想要满足我条件的前 10 个结果。但我不知道从哪里开始。我在想我需要一个像 for ($i=0;$i -le 10;$i++)
这样的 for 循环并在 IF 语句为真时执行 $i-- 。我是个菜鸟:D
$result | ForEach-Object {
if (($_.City -contains 'Oklahoma') -or ($_.City -like 'Chicago')){
}else {
$dosomething
}
}
我想出了一个办法。有什么other/better方法可以做到吗?
$i=0;
$result | ForEach-Object {
if (($_.City -contains 'Oklahoma') -or ($_.City -like 'Chicago') -or (($i -ge 10)){}
else {
$dosomething
$i++;
}
}
通常的方法是为结果保留一个计数器。当找到所需数量的结果时,break
语句将终止循环。像这样,
$hits = 0
$maxresults = 10
$result | ForEach-Object {
if ($_ -match "whatever" ){
++$hits
do-stuff
} else {
do-something-else
}
if($hits -ge $maxresults) { break }
}
如果您正在寻找单线,那么这可能会有所帮助:
$top10 = $result | Where-Object {($_.City -contains 'Oklahoma') -or ($_.City -like 'Chicago')} | Select-Object -First 10 -Skip 0