当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 多维数组 |多维数组的初始化

作者:精品下载站 日期:2024-12-14 20:33:09 浏览:16 分类:玩电脑

PowerShell 多维数组 |多维数组的初始化


[玩转系统] PowerShell 多维数组 |多维数组的初始化

PowerShell 多维数组简介

在开始向您解释多维数组如何工作之前,让我们先了解一下什么是数组。默认情况下,PowerShell 混合类型,这意味着您可以在数组中混合不同的数据类型,也就是说,您可以在单个变量中组合数值、日期或字符串。在本文中的 PowerShell 多维数组中,除非(显式)声明了数据类型,否则 PowerShell 数组的数据元素不需要具有相同的类型。但是,如果您希望将类似的数据类型放入数组中,那么您可以严格定义它。现在,一个数组包含在另一个数组中,称为多维数组。例如,包含员工详细信息的数组,每个员工都可以有自己的详细信息。

[玩转系统] PowerShell 多维数组 |多维数组的初始化

上图中有两个数组,一个是主数组,每个索引保存另一个包含用户名和年龄的数组。

PowerShell 多维数组的语法

在PowerShell中,我们可以有两种类型的数组:普通数组和交错数组。在下面的语法中我们可以看到,我们可以严格定义数组的数据类型,也可以没有任何数据类型。因此,如果我们需要混合数据数组或类似的数据数组,我们应该照顾这些事情。例如,如果我们需要一个数字数组,那么我们可以定义 int32,同样,如果我们需要一个带有字符串的数组,那么我们可以用 string 来定义。

$array = @( @(“data2”), @(“data3”), @(“data4”) …….)

上面一个是没有数组类型的语法,它可以有任何类型的数据,如数字或字符串组合在一起,如 23、“Ranjan”、“Vijay”、“xyx”、“45.4”等。

[int32[]]$array = @( @(“data2”), @(“data3”), @(“data4”) …….)

上面是 int 值的严格类型的语法,这意味着只允许使用数字值,例如 1,3,412,33,45,34 等。如果我们将数组定义为严格类型,并且我们尝试分配不同的数据类型,那么它会抛出一个错误。

[string[]]$array = @( @(“data2”), @(“data3”), @(“data4”) …….)

上面是字符串值严格类型的语法,这意味着只允许字符串值。如“Ajay”、“Vijay”、“Rakesh”等。如果我们尝试分配像 1,56,7 这样的值,它会抛出错误,因为我们已将其定义为字符串,并且我们正在尝试分配整数值。

因此,以类似的方式,我们也可以严格定义十进制(仅限十进制值)、布尔值、双精度数据类型等。

这些语法主要是创建一个二维数组,但如果要创建一个三维数组,我们需要使用命令 New-Object ‘object[,]’ i,j。

下面给出了创建 3 维数组的语法。这是创建多维数组的真正方法。

$array = New-Object 'object[,]' i,j

这里i,j表示矩阵的维数,我们可以根据自己的需求来写,比如可以写成New-Object ‘object[,]’ 3,3。这里3,3代表3*3矩阵。

如何在PowerShell中声明多维数组?

$array1 = “ajay”,”vijay”
$array1[0]

[玩转系统] PowerShell 多维数组 |多维数组的初始化

$array1 = “ajay”,”vijay”
$array2 =”sujit”,”sumit”
$array3 = 12
$array4 =1,2,3
$array =$array1,$array2,$array3,$array4
$array[0][1]
$array[1][1]
$array[2][1]
$array[2][0]
$array[3][2]

在下面的屏幕截图中定义了声明和访问。

[玩转系统] PowerShell 多维数组 |多维数组的初始化

要访问多维数组的任何元素,我们只需使用 array[i][j] 即可访问。因此,假设我们想要访问“sumit”而不是$array[1][1]。请记住,这里我们没有定义数据类型。这里数组的大小是灵活的,这意味着无论我们分配给它什么,它都会自动转换为该大小。

同样,它也可以用于严格定义的类型。

[int32[]]$array1 =12,13,22//Integer type
[int32[]]$array2 =121,131,221//Integer Type
[int32[]]$array3 =122,132,”Vijay”//Wrong way
[int32[]]$array3 =122,132,222//right way as Integer type
[int32[]]$array4 =123,133,223//Integer type
[string[]]$array5 =”Ajay”,”Vijay”,”Ranjan”//String type
[int32[]]$array =$array1,$array2,$array3,$array4,$array5//Wrong as it is array type
[array[]]$array =$array1,$array2,$array3,$array4,$array5//right way

是不是数组类型的组合所以我们应该定义一个数组,而不是int32。

输出:

[玩转系统] PowerShell 多维数组 |多维数组的初始化

访问值

[int32[]]$array1 =12,13,22
[int32[]]$array2 =121,131,221
[int32[]]$array3 =122,132,”vijay”
[int32[]]$array3 =122,132,222
[int32[]]$array4 =123,133,223
[string[]]$array5 =”Ajay”,”Vijay”,”Ranjan”
[array[]]$array =$array1,$array2,$array3,$array4,$array5
$array[4][2]
$array[4][1]
$array[2][1]
$array[1][1]
$array[1]
$array[4]
$array[2]

输出:

[玩转系统] PowerShell 多维数组 |多维数组的初始化

所以在这里我们学习了如何声明多维数组并访问其属性。

如何在PowerShell中初始化多维数组?

我们还可以通过 $array.count 检查 $array 的长度。

$array = (“ranjan”,”vijay”,”sujit”,”ajit”),(1,2,3),(‘lion’,'tiger','dog','fox')
$array.count

输出:

[玩转系统] PowerShell 多维数组 |多维数组的初始化

我们可以运行 for 循环来检查数组中的所有属性,如下所示:

$array = (“ranjan”,”vijay”,”sujit”,”ajit”),(1,2,3),(‘lion’,'tiger','dog','fox')
FOR ($i=0;$i -lt $array[0].length; $i++) {
$array[0][$i] + " " + $array[1][$i] + " " + $array[2][$i]
}

输出:

[玩转系统] PowerShell 多维数组 |多维数组的初始化

到目前为止我们讨论的是 2 维数组,所以如果我们想创建一个 3 维数组,我们需要使用命令“New-Object 'object[,]'3,3'”,然后我们就可以开始创建我们的 3 维数组了。维数组。您可以使用 FOR 循环查看多维数组的内容:

$array = New-Object 'object[,]' 3,3
$array[0,0] = (1,2,3)
$array[0,1] = (4,5,6)
$array[0,2] = (7,8,9)
$array[1,0] = ('a','b','c')
$array[1,1] = ('d','e','f')
$array[1,2] = ('g','h','i')
$array[2,0] = ('ranjan','vijay','sujit')
$array[2,1] = ('akash','bikash','suresh')
$array[2,2] = ('Anil','monu','sonu')
FOR ($i=0;$i -lt $array[0,0].length;$i++) {
write-host $array[0,$i] $array[1,$i] $array[2,$i]
}

下面给出了上述 for 循环访问其属性的输出:

[玩转系统] PowerShell 多维数组 |多维数组的初始化

[玩转系统] PowerShell 多维数组 |多维数组的初始化

PowerShell 中多维数组的类型

上面我们已经了解了如何在PowerShell中创建3维数组,现在我们将了解PowerShell中多维数组的类型。 PowerShell中的多维数组主要有两种类型,锯齿状数组和严格数据类型定义的数组。

1.锯齿状阵列

在锯齿状数组中,我们可以自由使用任何类型的数据类型,这意味着我们可以将字符串与数字或整数类型的小数一起放置。在现实世界中,人们最需要数组的混合数据类型,因为大多数数据包含不同类型的属性,例如年龄(整数),名称(字符串),高度(小数),因此要处理所有这些类型的属性很重要使用锯齿状数组。 PowerShell 中 Jagged 数组的一个好处是默认情况下是 Jagged 数组。这些类型的数组非常经济高效,因为其中可以包含任意大小的数据。锯齿状数组的语法。

在下面的示例中,我们没有定义数组的数据类型,因此在 PowerShell 中默认情况下,数组类型是 Jagged array。

下面是锯齿状数组的示例。

$array = @(("Ranjan","Vijay","Ajay"),(31,50,60))

2. 数组(严格定义的数据类型)

上面我们讨论了锯齿数组及其重要性,但在某些情况下,我们需要为数组有一个严格定义的数据类型。 例如,假设我们有大量仅员工 ID(数字)的数据,因此我们确信该数组将始终仅保存整数值。

所以我们可以根据我们的要求严格地用int/decimal/boolean等来定义它。

下面是严格定义数组的示例。

$array = @(("ranjan","vijay","ajay"),(31,50,60))
[int32[][]]$multi = @(
(64, 12, 24,78),
(65, 14, 48,88)
)
[decimal[][]]$multi = @(
(64.9, 12.9, 24.7),
(65.65, 14.67, 48.77)
)
[string[][]]$multi = @(
(“ranjan”, “ajay”, “Vijay”),
(“Sumit”, “Amit”, “Akash”)
)
[bool[][]]$multi = @(
($FALSE, $TRUE, $TRUE),
($FALSE, $TRUE, $FALSE)
) //Right way
[bool[][]]$multi = @(
(FALSE, TRUE, TRUE),
(FALSE, TRUE, FALSE)
) //Wrong way

输出:

[玩转系统] PowerShell 多维数组 |多维数组的初始化

结论

总而言之,多维数组允许我们处理相似和不同类型的数据类型。多维数组对于处理大型相关数据非常强大。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯