Как преобразовать HashSet в ArrayList в PowerShell? - PullRequest
0 голосов
/ 24 октября 2018

Мне нужно преобразовать 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?

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Вы также можете добавить каждый элемент от hashtable до array, используя цикл foreach:

$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?
foreach ($item in $hashset){
    $arraylist.Add($item)
}
0 голосов
/ 24 октября 2018

В одну сторону, используя CopyTo:

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

Другой способ (короче, но медленнее для больших хэш-наборов):

$arraylist = [System.Collections.ArrayList]@($hashset)

Кроме того, я сильно рекомендую отдать предпочтение List над ArrayList, так как это в значительной степени устарело с момента появления обобщения:

$list = [System.Collections.Generic.List[int]]$hashset
0 голосов
/ 24 октября 2018

Не уверен, что это то, что вы ищете, но это здесь вы идете ...

$hashset = New-Object System.Collections.Generic.HashSet[int]
$null = $hashset.Add(1)
$null = $hashset.Add(2)
$null = $hashset.Add(3)
# @($hashset) converts the hashset to an array which is then 
# converted to an arraylist and assigned to a variable
$ArrayList = [System.Collections.ArrayList]@($hashset)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...