String 删除PowerShell阵列中的第三个元素
我有很长的字符串,我从外部程序复制并粘贴到PowerShell。 分裂之后( $variable=$variable.split(“'n”) )我收到了一个数组,我希望每三个元素从中删除一个。 最方便的方法是什么? 我从一开始就想到了回路 0到$variable.lenght()-1String 删除PowerShell阵列中的第三个元素,string,powershell,String,Powershell,我有很长的字符串,我从外部程序复制并粘贴到PowerShell。 分裂之后( $variable=$variable.split(“'n”) )我收到了一个数组,我希望每三个元素从中删除一个。 最方便的方法是什么? 我从一开始就想到了回路 0到$variable.lenght()-1 然后检查我是否可以被3除,但可能还有其他方法?如果需要删除数组中任意3个位置的值(基于0的:2,5,8,11,14等),请使用以下方法: $newArray = @() 0..($variable.length)
然后检查我是否可以被3除,但可能还有其他方法?如果需要删除数组中任意3个位置的值(基于0的:2,5,8,11,14等),请使用以下方法:
$newArray = @()
0..($variable.length) | % {
if ((($_+1) % 3 ) -ne 0) {
$newArray += $variable[$_]
}
}
如果需要删除数组中任意3个位置的值(基于0的:2、5、8、11、14等),请使用以下方法:
$newArray = @()
0..($variable.length) | % {
if ((($_+1) % 3 ) -ne 0) {
$newArray += $variable[$_]
}
}
$new=for($i=2;$i-lt$array.count;$i+=3){$array[$i]}
这将从第三个元素开始,每三个元素获取一次。流水线输出保存为$new。$new=for($i=2;$i-lt$array.count;$i+=3){$array[$i]}
这将从第三个元素开始,每三个元素获取一次。流水线输出保存为$new。或
0..($variable.count-1) | foreach { if($_%3) {$variable[$_]} }
或
我决定回去仔细检查一下。使用包含100个成员的数组运行我的代码需要1.0246毫秒。使用前面的ForEach示例需要12.8752ms。这两种方法都有效,对于小型阵列,性能差异可以忽略不计。我决定返回并仔细检查。使用包含100个成员的数组运行我的代码需要1.0246毫秒。使用前面的ForEach示例需要12.8752ms。这两种方法都有效,对于小型阵列,性能差异可以忽略不计。
$i = 0
$variable = $variable.split("`n") | ? {++$i % 3}