[玩转系统] PowerShell 多维数组 |多维数组的初始化
作者:精品下载站 日期:2024-12-14 20:33:09 浏览:16 分类:玩电脑
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]
$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]
在下面的屏幕截图中定义了声明和访问。
要访问多维数组的任何元素,我们只需使用 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。
输出:
访问值
[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中初始化多维数组?
我们还可以通过 $array.count 检查 $array 的长度。
$array = (“ranjan”,”vijay”,”sujit”,”ajit”),(1,2,3),(‘lion’,'tiger','dog','fox')
$array.count
输出:
我们可以运行 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]
}
输出:
到目前为止我们讨论的是 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中创建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
输出:
结论
总而言之,多维数组允许我们处理相似和不同类型的数据类型。多维数组对于处理大型相关数据非常强大。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag