获取 PSObject 数组大小或计数

Jon*_*oux 3 powershell psobject

我创建一个像这样的数组:

$Array = @()

$Item = New-Object PSObject
$Item | Add-Member -Type NoteProperty -Name item1 -Value test
$Item | Add-Member -Type NoteProperty -Name item2 -Value test

$Array += $Item
Run Code Online (Sandbox Code Playgroud)

现在我想$Item在添加之前添加一个检查以确定是否为空$Array。我怎样才能得到 的会员数量$Item

我尝试过类似的东西:

$Item.count
$Item.length
@($Item).count
($Item | Measure).count
($Item | Get-Member).count
$Item.psobject.members.count
Run Code Online (Sandbox Code Playgroud)

但他们都没有给我实际的会员人数。

小智 7

您可以使用隐藏.PsObject.Properties来检查

$Item.PSobject.Properties.Value.count或者
$Item.PSobject.Properties.Names.count

$Item = New-Object PSObject
$Item.Psobject.Properties.value.count
0

$Item | Add-Member -Type NoteProperty -Name item1 -Value test
$Item.Psobject.Properties.value.count
1

$Item | Add-Member -Type NoteProperty -Name item2 -Value test
$Item.Psobject.Properties.value.count
2
Run Code Online (Sandbox Code Playgroud)

  • 确实(+1);奇怪的是,从“.properties”返回的集合没有“.Count”或“.Length”属性;更简洁的替代方案是 `@($Item.psobject.properties).Count` (3认同)