询问者
powershell命令删除不了第二个“6”

问题
-
大家好,
我是一个新人,在学习powershell时发现ArrayList如果前两位元素相同,则第二个元素删除不了,这是为什么?是我的命令有问题吗?错误在哪儿?
例如下面这个例子,运行结果是第二个“6”无法删除,请帮帮忙
$array=6,6,5,7,5 [System.Collections.ArrayList]$arraylist=$array for($i=0;$i -le $arraylist.Count-1;$i++){ if($arraylist[$i] -eq 6){ $arraylist.RemoveAt($i) } } $arraylist
全部回复
-
Hi,
试试这个:
$array=6,6,5,7,5 [System.Collections.ArrayList]$arraylist=$array | select -Unique for($i=0;$i -le $arraylist.Count-1;$i++){ if($arraylist[$i] -eq 6){ $arraylist.RemoveAt($i) } } $arraylist
Best regards,
Andy
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com. -
$a=6,6,5,7,5
$b = $a | where-object { $_ -ne 6 }
- 已建议为答案 Hello_2018Moderator 2017年4月6日 4:19
-
$array=6,6,5,7,5
#[System.Collections.ArrayList]$arraylist=$array
for($i=0;$i -le $arraylist.Count-1;$i++){
if($arraylist[$i] -eq 6){
$arraylist.RemoveAt($i)
$i-- #加这句解决
}
"$i"+":"+$arraylist[$i] #这一句能解释结果的原因
}
$arraylist- 已建议为答案 Hello_2018Moderator 2017年4月6日 4:19
-
Hi,
这个:
$array=6,6,5,7,5 [System.Collections.ArrayList]$arraylist=$array for($i=0;$i -le $arraylist.Count-1;$i++){ if(($arraylist[$i] -eq 6)){ $arraylist.RemoveAt($i) $arraylist.RemoveAt($i) } } $arraylist
Best regards,
Andy
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.