[玩转系统] 如何在 PowerShell 中将对象转换为数组
作者:精品下载站 日期:2024-12-14 05:07:46 浏览:13 分类:玩电脑
如何在 PowerShell 中将对象转换为数组
您需要在PowerShell中将对象转换为数组吗?在本 PowerShell 教程中,我将解释如何使用各种方法在 Powershell 中将对象转换为数组。
要在 PowerShell 中将对象转换为数组,可以通过在对象前面加上 [array] 前缀将对象转换为数组类型,例如 $array=[array]$object。或者,您可以使用数组子表达式运算符 @(),例如 $array=@($object),以确保结果是一个数组,即使对象仅包含单个值。
在 PowerShell 中将对象转换为数组
在深入了解转换过程之前,让我们先了解一下 PowerShell 上下文中的对象和数组是什么。
PowerShell 中的对象是表示结构化数据的.NET 类的实例。它可以包含多个属性和方法,可以使用点表示法访问这些属性和方法(例如,$object.PropertyName
)。
另一方面,数组是一种旨在存储项目集合的数据结构。这些项目可以是相同类型或不同类型。当您需要迭代一组值或通过索引访问它们时,数组非常有用。
现在,让我们检查一下在 PowerShell 中将对象转换为数组的不同方法。
1. 使用@()数组子表达式运算符
将对象转换为数组的最简单方法之一是在 PowerShell 中使用数组子表达式运算符 @()
。该运算符确保结果始终是数组,即使输入是单个对象也是如此。
这是一个完整的例子。
$object = New-Object PSObject -Property @{
Name = 'John'
Age = 30
}
$array = @($object)
在此示例中,$object
是一个具有属性 Name
和 Age
的 PowerShell 自定义对象。通过用 @()
包裹 $object
,将其转换为只有一个元素的数组。
在我使用 VS code 执行脚本后,您可以在下面的屏幕截图中看到输出。
2. 使用 [array] 进行转换
将对象转换为数组的另一种方法是在 PowerShell 中使用 [array]
将对象显式转换为数组类型。
这是一个完整的例子。
$object = New-Object PSObject -Property @{
Name = 'Jane'
Age = 25
}
$array = [array]$object
这里,[array]$object
将 $object
转换为数组类型。如果 $object
已经是一个数组,则此操作将不起作用,但如果不是,则 $object
将被包装在数组中。
3. 使用 += 运算符构建数组
您还可以使用 +=
运算符将对象添加到现有数组,或者通过在 PowerShell 中将对象添加到 $null
来创建新数组。
这是一个完整的例子。
$object = New-Object PSObject -Property @{
Name = 'Alice'
Age = 28
}
$array = $null
$array += $object
在此示例中,我们以 $array
作为 $null
开始,然后向其中添加 $object
。结果是 $array
变成一个以 $object
作为其第一个元素的数组。
4. 使用 ForEach-Object Cmdlet
如果您有对象集合并希望将它们转换为数组,可以使用 PowerShell 中的 ForEach-Object
cmdlet。这在处理返回多个对象的 cmdlet 的输出时特别有用。
这是一个完整的 PowerShell 脚本。
$objects = Get-Process | Select-Object -First 5
$array = $objects | ForEach-Object { $_ }
在此示例中,Get-Process
检索系统上运行的当前进程,而Select-Object -First 5
将输出限制为前五个进程。 ForEach-Object
cmdlet 迭代 $objects
中的每个对象并将它们输出到 $array
中。
5. 将 .ToArray() 方法与 ArrayList 一起使用
对于支持它的集合,例如 ArrayList,您可以使用 .ToArray() 方法将集合转换为标准数组。
下面是如何使用 PowerShell 中的 .ToArray() 方法将对象转换为数组的示例。
$arrayList = New-Object System.Collections.ArrayList
$arrayList.Add((New-Object PSObject -Property @{Name = 'Bob'; Age = 27}))
$array = $arrayList.ToArray()
在此示例中,创建了一个 ArrayList 并向其中添加了一个新对象。然后在 ArrayList
上调用 .ToArray()
方法,将其转换为标准 PowerShell 数组。
结论
PowerShell 提供了多种在 PowerShell 中将对象转换为数组的方法。在本 PowerShell 教程中,我解释了在 PowerShell 中将对象转换为数组的各种方法,例如:
- 使用 @() 数组子表达式运算符
- 使用 [array] 进行投射
- 使用 += 运算符构建数组
- 使用 ForEach-Object Cmdlet
- 将 .ToArray() 方法与 ArrayList 一起使用
猜你还喜欢
- 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 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][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
[电视剧] [突围] [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