Powershell - 陣列
PowerShell 提供了一個資料結構,即陣列,它儲存任意型別元素的固定大小順序集合。陣列用於儲存資料集合,但將陣列視為變數或物件的集合通常更有用。
你可以宣告一個陣列變數(例如 number)並使用 number[0],number[1]和…,number[99]來表示單個變數,例如 number0,number1,…和 number99,而不是宣告單個變數。個別變數。
本教程介紹如何使用索引變數宣告陣列變數,建立陣列和處理陣列。
宣告陣列變數
要在程式中使用陣列,必須宣告一個變數以引用該陣列,並且可以指定變數可以引用的陣列型別。以下是宣告陣列變數的語法 -
句法
$A = 1, 2, 3, 4
or
$A = 1..4
注 - 預設情況下,陣列物件的型別是 System.Object。 GetType()
方法返回陣列的型別。型別可以傳遞。
例
以下程式碼片段是此語法的示例 -
[int32[]]$intA = 1500,2230,3350,4000
$A = 1, 2, 3, 4
$A.getType()
這將產生以下結果 -
輸出
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
通過索引訪問陣列元素。 陣列索引從 0 開始; 也就是說,它們從 0 開始到 arrayRefVar.length-1
。
例
下面的語句宣告瞭一個陣列變數 myList
,它建立了一個包含 10 個 double 型別元素的陣列,並將其引用分配給 myList
-
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123
下圖代表陣列 myList。這裡,myList 包含十個 double 值,索引從 0 到 9。
處理陣列
處理陣列元素時,我們經常使用 for 迴圈或 foreach 迴圈,因為陣列中的所有元素都是相同的型別,並且陣列的大小是已知的。
例
這是一個完整的示例,展示瞭如何建立,初始化和處理陣列 -
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123
write-host("Print all the array elements")
$myList
write-host("Get the length of array")
$myList.Length
write-host("Get Second element of array")
$myList[1]
write-host("Get partial array")
$subList = $myList[1..3]
write-host("print subList")
$subList
write-host("using for loop")
for ($i = 0; $i -le ($myList.length - 1); $i += 1) {
$myList[$i]
}
write-host("using forEach Loop")
foreach ($element in $myList) {
$element
}
write-host("using while Loop")
$i = 0
while($i -lt 4) {
$myList[$i];
$i++
}
write-host("Assign values")
$myList[1] = 10
$myList
這將產生以下結果 -
輸出
Print all the array elements
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
Get the length of array
10
Get Second element of array
4.5
Get partial array
print subList
4.5
3.3
13.2
using for loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using forEach Loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using while Loop
5.6
4.5
3.3
13.2
Assign values
5.6
10
3.3
13.2
4
34.33
34
45.45
99.993
11123
陣列方法示例
這是一個完整的示例,顯示了使用其方法對陣列的操作
$myList = @(0..4)
write-host("Print array")
$myList
$myList = @(0..4)
write-host("Assign values")
$myList[1] = 10
$myList
這將產生以下結果 -
輸出
Clear array
Print array
0
1
2
3
4
Assign values
0
10
2
3
4