PowerShell - 数组



PowerShell 提供了一种数据结构,即数组,它存储固定大小的任何类型的元素的顺序集合。数组用于存储数据集合,但通常将其视为变量或对象的集合更有用。

与其声明单独的变量,例如 number0、number1、... 和 number99,不如声明一个数组变量,例如 numbers,并使用 numbers[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 

数组元素通过索引访问。数组索引是基于 0 的;也就是说,它们从 0 开始到arrayRefVar.length-1

示例

以下语句声明一个数组变量 myList,创建一个包含 10 个双精度类型元素的数组,并将它的引用分配给 myList:

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

下图表示数组 myList。这里,myList 包含十个双精度值,索引从 0 到 9。

Array myList

处理数组

在处理数组元素时,我们通常使用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
广告