добавляет элемент "aa" в список $list. Есть ли способ добавить элемент? Это мое решение, но должен быть способ сделать это в одной строке.
$tmp = ,"aa";
$tmp += $list
$list = $tmp
Ответ 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 имеют фиксированную длину. Сочетание двух массивов в одном - хороший подход.