📅  最后修改于: 2020-11-19 08:00:30             🧑  作者: Mango
PowerShell提供了一个数据结构array ,该数据结构存储一个固定大小的任意类型的元素的顺序集合。数组用于存储数据集合,但是将数组视为变量或对象的集合通常更有用。
无需声明单个变量(例如number0,number1,…和number99),而是声明一个数组变量(例如numbers),并使用number [0],numbers [1]和…,numbers [99]表示各个变量。
本教程介绍如何使用索引变量声明数组变量,创建数组和处理数组。
要在程序中使用数组,必须声明一个变量以引用该数组,并且可以指定该变量可以引用的数组的类型。这是声明数组变量的语法-
$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
数组元素通过index访问。数组索引从0开始;也就是说,它们从0开始到arrayRefVar.length-1 。
以下语句声明一个数组变量myList,创建一个由double类型的10个元素组成的数组,并将其引用分配给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