Powershell“add-member”命令非常有用。我用它来向自定义对象添加属性。有时我将一个成员设置为一个数组来保存多个对象。是否可以将 ArrayList 添加为自定义对象的成员?
想象一下文章列表具有属性“索引”、“标题”和“关键字”。在 Powershell 中,您可以将此代码放入循环中:
for($i = 0; $i -lt 100; $i++) {
$a = new-object -TypeName PSObject
$a | Add-Member -MemberType NoteProperty -Name index -Value $i
$a | Add-Member -MemberType NoteProperty -Name title -Value "Article $i"
$a | Add-Member -MemberType NoteProperty -Name keywords -Value @()
$articles += $a
}
您最终会得到一个由 Article 对象组成的数组 $articles,每个对象都有成员索引、标题和关键字。此外,关键字成员是一个可以有多个条目的数组:
$articles[2].keywords += "Stack Exchange", "Powershell", "ArrayLists"
$articles[2].keywords[2]
Powershell
这满足了我的大部分需求,但我就是不喜欢处理数组。 ArrayList 更容易使用,只是因为
$arrayList1.remove("value")
比
$array1 = $array1 |? {$_ new "value"}
有没有办法使用 Add-Member 将 ArrayList 添加为成员?或者我被数组困住了?如果 Powershell 本身不支持此功能,我可以插入一些 C# 代码来创建一个以 ArrayList 作为成员的新类吗?