2017-01-31 31 views

回答

0

枚举阵列是最快的方法,包括:

$max = '' 
foreach ($el in $arr) { 
    if ($el -gt $max) { 
     $max = $el 
    } 
} 
$max 

或者使用SortedSet从.NET 4个构架(built-in since Win 8),它比测量 - 对象比人工枚举2倍的速度,但速度慢两倍以上。如果您计划快速排序数据而不重复数据,它仍然可能很有用:它比内置的Sort-Object更快。

([Collections.Generic.SortedSet[string]]$arr).max 

显然,这将分配用于数组索引一些存储器,但不作为它会从现有的阵列中重复使用的实际数据。如果你关注它,只是迫使垃圾收集[gc]::Collect()

+0

没想到的是简单地找出最大值/最小值必须采取在PowerShell中手动循环。谢谢您的回答! – DanEng

+0

呃,不,请参阅简单代码和短代码的其他答案。我只是喜欢我的脚本在处理日志文件中的大量数据时是即时的,所以我提升了手动枚举,因为它比Sort/Sort-Object cmdlet快几倍。 – wOxxOm

1

试试这个

$arr = @("0001", "0002", "0003") 
$arr | sort -Descending | select -First 1