You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中将String类型转换为Object[]数组?

问题:将String转换为Object[]并匹配指定格式

需求格式与目标数据类型示例:

$demilimitedIds = {/subscriptions/XXX},{/subscriptions/XXX}
echo $demilimitedIds.GetType().Name  # 输出:Object[]

当前实现代码:

[System.Collections.Generic.List[System.String]]$IDList = @()
$IDList.Add("/subscriptions/XXX")   
$IDList.Add("/subscriptions/XXX")

$Alist =  '{{{0}}}' -f ($IDList -join '},{') 
echo "%%%%%%%%%%%%%%%"
echo $Alist.GetType().Name  # 输出:String
echo "%%%%%%%%%%%%%%%"

需要将$IDList转换为与$demilimitedIds格式一致、类型为Object[]的结果,或者将已有的$Alist从String类型转为Object[]。


解决方案

方法1:直接从$IDList生成目标数组(推荐)

不需要先拼接成字符串,直接对每个ID元素添加前后大括号,生成的结果天然就是Object[]类型:

[System.Collections.Generic.List[System.String]]$IDList = @()
$IDList.Add("/subscriptions/XXX")   
$IDList.Add("/subscriptions/XXX")

# 遍历每个ID,包装成带大括号的字符串,组成数组
$demilimitedIds = $IDList | ForEach-Object { "{{{0}}}" -f $_ }

# 验证类型和内容
$demilimitedIds.GetType().Name  # 输出 Object[]
$demilimitedIds  # 输出:{/subscriptions/XXX} 和 {/subscriptions/XXX}

方法2:从已有的$Alist字符串转换

如果已经生成了$Alist字符串,可以通过拆分和格式化来转为Object[]:

# 假设$Alist的值是 "{/subscriptions/XXX},{/subscriptions/XXX}"
$demilimitedIds = $Alist -split '},{', 0 | ForEach-Object {
    # 移除首尾的大括号,再重新包装成带大括号的格式
    $cleanId = $_ -replace '^[{]|}[]$', ''
    "{{{0}}}" -f $cleanId
}

# 验证类型
$demilimitedIds.GetType().Name  # 输出 Object[]

内容的提问来源于stack exchange,提问作者dev333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:45:33