2017-01-31 71 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