powershell max/first/aggregate函数

Dzm*_*voi 20 powershell

首先,我是.NET开发人员和LOVE LINQ以及C#中的扩展方法.但是当我编写脚本时,我需要与Enumerable扩展方法等效的东西

任何人都可以在Powershell中给我任何建议/解释如何在这种情况下工作的最佳实践.例如,假设我想从数组中获取max元素:

$arr = @(2, 1, 3)
$max = $arr.MAX() #?? what should i do in this case?
Run Code Online (Sandbox Code Playgroud)

Kei*_*ill 32

使用Measure-Object命令:

C:\PS> 2,1,3 | Measure-Object -Maximum


Count    : 3
Average  :
Sum      :
Maximum  : 3
Minimum  :
Property :
Run Code Online (Sandbox Code Playgroud)

或者只获得最大值:

C:\PS> (2,1,3 | Measure -Max).Maximum
Run Code Online (Sandbox Code Playgroud)

从上面可以看到,还有最小,平均和总和.但是你必须告诉PowerShell计算带有Measure-Object参数的那些,例如-Sum -Average等.


Jas*_*irk 10

Keith正确地提到了一些LINQ扩展方法的PowerShell等价物.请注意,您可以从PowerShell调用大多数扩展方法,您无法像调用成员一样调用它们.

扩展方法实际上只是静态方法,在C#中有一些额外的规则,允许像成员一样调用它们.

PowerShell没有实现任何这些规则,但这并不能阻止您将它们称为静态方法,例如

[System.Linq.Enumerable]::Average([int[]](1..10))
Run Code Online (Sandbox Code Playgroud)