Подтвердить что ты не робот

Как добавить элемент в массив в Powershell?

Код Powershell:

$list += "aa"

добавляет элемент "aa" в список $list. Есть ли способ добавить элемент? Это мое решение, но должен быть способ сделать это в одной строке.

$tmp = ,"aa";
$tmp += $list
$list = $tmp
4b9b3361

Ответ 1

В приведенном выше примере вы должны просто сделать:

$list = ,"aa" + $list

Это просто добавит "aa" к списку и сделает его 0-м. Проверьте, получив $list[0].

Ответ 2

Использование += и + в массивах в PowerShell делает копию массива каждый раз, когда вы его используете. Это прекрасно, если список/массив действительно большой. В этом случае рассмотрите использование общего списка:

C:\> $list = new-object 'System.Collections.Generic.List[string]'
C:\> $list.Add('a')
C:\> $list.Add('b')
C:\> $list.Insert(0,'aa')
C:\> $list
aa
a
b

Обратите внимание, что в этом случае вам нужно использовать методы "Добавить/Вставить". Если вы вернетесь к использованию +=, он скопирует общий список обратно в object[].

Ответ 3

Это объединяет два массива в один.

$list = @("aa") + $list

Невозможно выполнить чистое добавление в массив PowerShell, поскольку массивы PowerShell имеют фиксированную длину. Сочетание двух массивов в одном - хороший подход.