Powershell 具有某些属性的最小/最大值的自定义对象数组元素
找到最小值/最大值是否有更有趣的选项?我们可以列出一长串有效的PowerShell语句,这些语句看起来略有不同,并且会产生相同的结果,但基本上有两种方法:Powershell 具有某些属性的最小/最大值的自定义对象数组元素,powershell,Powershell,找到最小值/最大值是否有更有趣的选项?我们可以列出一长串有效的PowerShell语句,这些语句看起来略有不同,并且会产生相同的结果,但基本上有两种方法: 分类 计数 通过排序获得最小值/最大值听起来就是这样的: $CustomObjects = Get-Random -Count 7 -InputObject @(0..300) | ForEach-Object {$i = 0} { [PSCustomObject]@{ id = ($i++) va
- 分类
- 计数
$CustomObjects = Get-Random -Count 7 -InputObject @(0..300) | ForEach-Object {$i = 0} {
[PSCustomObject]@{
id = ($i++)
value = $_
}
}
$min, $max = & {$Args[0].Minimum, $Args[0].Maximum} ($CustomObjects | ForEach-Object value | Measure-Object -Minimum -Maximum)
$CustomObjects | Format-Table id, value -RepeatHeader
$CustomObjects | Where-Object {$_.value -eq $min} | Format-Table id, value
$CustomObjects | Where-Object {$_.value -eq $max} | Format-Table id, value
非常简洁,易于表达-但在大型集合中可能会变得很慢
通过保持计数获得最小/最大值正是测量对象所做的:
$min,$max = @($CustomObjects |Sort Value)[0,-1].Value
# or
$min,$max = @($CustomObjects.Value |Sort)[0,-1]
不是幻想,但对于大集合
更快,这完全取决于你认为什么“有趣”:“你可以解释”有趣的“你喜欢多少”,“你可以解释”有趣的“相当自由”,我不知道如何最好地把它翻译成英语,谢谢你,我一直忘了排序方法。
$min,$max = [int]::MaxValue,[int]::MinValue
$CustomObjects |ForEach-Object {
$min = [Math]::Min($_.Value, $min)
$max = [Math]::Max($_.Value, $max)
}