我需要将HashSet转换为ArrayList吗?

$hashset = New-Object System.Collections.Generic.HashSet[int]
$hashset.Add(1)
$hashset.Add(2)
$hashset.Add(3)

$arraylist = New-Object System.Collections.ArrayList
# Now what?

最佳答案

一种方法,使用CopyTo:

$array = New-Object int[] $hashset.Count
$hashset.CopyTo($array)
$arraylist = [System.Collections.ArrayList]$array

另一种方法(对于较大的哈希集,较短,但较慢):
$arraylist = [System.Collections.ArrayList]@($hashset)

另外,我强烈建议推荐使用List而不是ArrayList,因为自引入泛型以来它几乎是deprecated:
$list = [System.Collections.Generic.List[int]]$hashset

10-05 21:10
查看更多