2010-02-04 21 views
12

Powershell kodu:Öğe, Powershell'deki bir diziye nasıl eklenir?

$list += "aa" 

liste $ listesine öğe "aa" ekler. Bir elemanı yerleştirmenin bir yolu var mı? Bu benim çözümüm, ancak bunu tek bir satırda yapmanın bir yolu olmalı. PowerShell diziler üzerinde += ve + kullanma

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

cevap

20

, sadece yapmak mümkün olmalıdır: basitçe listeye "aa" Önlerine ve edecektir

$list = ,"aa" + $list 

o 0 eleman olun. $list[0] alarak doğrulayın.

+0

Teknik olarak, bu iki diziyi birleştirir. Dizi sabit boyuttadır, böylece saf bir prepend mümkün değildir. –

11

dizinin bir kopyasını kullanmadan her zaman yapıyor. Liste/dizi gerçekten büyük olmadığı sürece bu iyi. Bu durumda, genel bir listesini kullanarak düşünün:

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 

Not Bu senaryoda Ekleme/Ekle yöntemleri kullanmak gerektiğini. +='u kullanmaya devam ederseniz, jenerik listeyi bir object[]'a geri kopyalayacaktır. Yukarıdaki örnekte

+0

Not, ilk $ listeniz 2 öğeden oluşan bir dizi döndürür. İlk öğe 'aa', ikinci eleman ise 'a' ve 'b' – Nestor

+0

Doh! Tamam, o kısmı çıkardı. –

2

Bu, iki diziyi bir araya getirir.

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

O PowerShell diziler uzunluğu sabittir, çünkü bir PowerShell diziye saf başa dosya eklemeyi yapmak imkansız. İki diziyi bir araya getirmek iyi bir yaklaşımdır.

+0

Awesome thanks :) –

İlgili konular