Arrays PowerShell-创建忽略重复值的数组
好奇PowerShell中是否有这样的构造 我知道你可以做到:Arrays PowerShell-创建忽略重复值的数组,arrays,powershell,duplicates,Arrays,Powershell,Duplicates,好奇PowerShell中是否有这样的构造 我知道你可以做到: $arr = @(1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4) $arr = $arr | Get-Unique 但从性能角度看,最好在将值输入数组时忽略该值,而不是在事实发生后过滤掉。如果在数组中插入大量项(数千项),则性能会下降,因为每次添加阵列时都需要重新初始化阵列,所以在性能方面,使用其他方法可能会更好 字典或哈希表可能是一种方法。可以使用$hash.Keys检索一维唯一数组,例如: $hash
$arr = @(1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4)
$arr = $arr | Get-Unique
但从性能角度看,最好在将值输入数组时忽略该值,而不是在事实发生后过滤掉。如果在数组中插入大量项(数千项),则性能会下降,因为每次添加阵列时都需要重新初始化阵列,所以在性能方面,使用其他方法可能会更好 字典或哈希表可能是一种方法。可以使用$hash.Keys检索一维唯一数组,例如:
$hash = ${}
$hash.Set_Item(1,1)
$hash.Set_Item(2,1)
$hash.Set_Item(1,1)
$hash.Keys
1
2
如果使用Set_项,则将创建或更新密钥,但不会重复。如果您不使用该值,请为该值添加其他内容,但可能您的问题也需要一个值。您也可以使用Arraylist:
Measure-Command -Expression {
$bigarray = $null
$bigarray = [System.Collections.ArrayList]@()
$bigarray = (1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4)
$bigarray | select -Unique
}
时间流逝:
- 总秒数:00006581
- 总毫秒数:06581
Measure-Command -Expression { $array = @(1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4) $array | select -Unique }
- 总秒数:00009261
- 总毫秒数:09261
$arr |排序对象-唯一-区分大小写