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

如何在PowerShell中定义自定义类的数组并添加数据?

PowerShell中定义MyClass类型数组并添加数据的方法

针对你的需求,这里提供两种定义MyClass类型数组并添加数据的可行方案,同时修正你示例循环中的写法问题:

方案一:固定大小的强类型数组

如果你提前知道需要存储的元素数量,可以直接初始化一个固定大小的MyClass类型数组:

# 根据$SomeObjects的数量初始化对应大小的MyClass数组
[MyClass[]]$MyArray = New-Object MyClass[] $SomeObjects.Count

for ($i = 0; $i -lt $SomeObjects.Count; $i++) {
    # 从$SomeObjects中提取需要的字段值(示例,根据实际情况修改)
    $field1 = $SomeObjects[$i].对应属性名1
    $field2 = $SomeObjects[$i].对应属性名2
    
    # 实例化MyClass对象并赋值到数组的指定索引位置
    $MyArray[$i] = [MyClass]::new($field1, $field2)
}

方案二:泛型列表(动态添加更灵活)

如果不确定元素数量,推荐使用泛型列表来动态添加元素,之后可按需转换为数组:

# 初始化一个存储MyClass类型的泛型列表
$myList = [System.Collections.Generic.List[MyClass]]::new()

foreach ($item in $SomeObjects) {
    $field1 = $item.对应属性名1
    $field2 = $item.对应属性名2
    
    # 创建MyClass实例并添加到列表中
    $myList.Add([MyClass]::new($field1, $field2))
}

# 若需要将列表转为数组,执行以下语句
[MyClass[]]$MyArray = $myList.ToArray()

关于你示例循环的修正说明

你原代码中$MyArray[$i]($Field1, $Field2)的写法有误,此时数组索引位置的元素尚未实例化,无法直接这样调用。正确的做法是通过[MyClass]::new()创建对象实例,再赋值给数组对应位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:52:16