Я возился с этим, и кажется, что это работает:
[int[]]$c = 1,2,3,4,5
[System.Collections.Generic.HashSet[int]]::new([System.Collections.Generic.IEnumerable[int]]$c)
Вы можете даже пропустить часть [System.Collections.Generic.IEnumerable[int]]
здесь и просто сделать
[int[]]$c = 1,2,3,4,5
[System.Collections.Generic.HashSet[int]]::new($c)
Без объявления массива как [int[]]
он не будет работать, и вы получите ошибку
Невозможно преобразовать значение "System.Object []" типа "System.Object []"набрать" System.Collections.Generic.IEnumerable`1 [System.Int32] ".
С типом [int[]]
, тип для переменной c$
:System.Int32[]
, а не просто System.Object[]
, и это именно то, чего хочет конструктор.
Надеюсь, что это поможет