2010-02-04 40 views

Trả lời

20

Trong ví dụ của bạn ở trên, bạn nên chỉ có thể làm:

$list = ,"aa" + $list 

Đó chỉ đơn giản là sẽ thêm "aa" vào danh sách và làm cho nó trở thành yếu tố 0. Xác minh bằng cách nhận $list[0].

+0

Về mặt kỹ thuật, điều này kết hợp hai mảng. Mảng có kích thước cố định, vì vậy không thể thêm một giao diện người dùng thuần túy. –

11

Sử dụng +=+ trên mảng trong PowerShell đang thực hiện một bản sao của mảng mỗi khi bạn sử dụng nó. Đó là tốt trừ khi danh sách/mảng là thực sự lớn. Trong trường hợp đó, hãy xem xét sử dụng danh sách chung:

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 

Lưu ý rằng trong trường hợp này, bạn cần sử dụng các phương pháp Thêm/Chèn. Nếu bạn quay trở lại sử dụng +=, nó sẽ sao chép danh sách chung trở lại thành object[].

+0

Lưu ý, danh sách $ đầu tiên của bạn sẽ trả về một mảng gồm 2 phần tử. Phần tử đầu tiên là 'aa' và phần tử thứ hai là danh sách lồng nhau gồm 2 phần tử 'a' và 'b' – Nestor

+0

Doh! OK, đã xóa phần đó. –

2

Kết hợp hai mảng thành một.

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

Không thể thực hiện việc chuẩn bị tinh khiết vào mảng PowerShell, vì mảng PowerShell có độ dài cố định. Kết hợp hai mảng thành một là một cách tiếp cận tốt.

+0

Cảm ơn tuyệt vời :) –

Các vấn đề liên quan