从 PowerShell 中的多个数组中获取最多的项目数

Get highest count of items from multiple arrays in PowerShell

假设我在 powershell 中有多个非数值数组:

$a = (a, b, c, d)             # $a.count equals 4 items
$b = (e, f, g, h, i, j)       # $b.count equals 6 items, which is the highest count of items in one of the arrays
$c = (k, l, m, n, o)          # $c.count equals 5 items
$d = (p, q)                   # $d.count equals 2 items
...

声明所有这些数组后,我想从所有数组中获取最大计数,在上面的例子中是数组 $b 中的计数 6。 有没有一种简单的方法可以实现这一点,而不是将每个数组与下一个数组进行比较并检查计数是否比以前更高?

非常感谢!

您可以使用 Measure-Object Cmdlet with -Property and -Maximum Parameters-Property 参数允许您根据 属性 值进行测量(在本例中它基于数组 Count 属性)

$a = ('a', 'b', 'c', 'd')
$b = ('e', 'f', 'g', 'h', 'i', 'j')
$measureInfo = ($a, $b) | Measure-Object -Property Count -Maximum
Write-Output $measureInfo.Maximum # This will print 6

请注意,这将仅打印最大值 Count。如果您还需要数组,您可能必须根据此值应用过滤器。

$MaxArray = ($a, $b) | Where-Object {$_.Count -eq $maximumCount.Maximum}