Как предварительно ожидать элемент к массиву в Powershell?

Код Powershell:

$list += "aa"

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

$tmp = ,"aa";
$tmp += $list
$list = $tmp
18
задан Nestor 4 February 2010 в 17:13
поделиться

2 ответа

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

$list = ,"aa" + $list

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

24
ответ дан 30 November 2019 в 07:12
поделиться

Используя += и + на массивах в 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

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

13
ответ дан 30 November 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: