我有一個包含大約 1000 個專案的哈希表,其中一個屬性是日期
$ht=@{}
$ht[1]=@{Date="11/11/2021"; Number=03321}
$ht[2]=@{Date="10/10/2021"; Number=03321}
$ht[3]=@{Date="09/10/2021"; Number=03321}
# .....
在等
我需要選擇10條記錄與最早的日期-任何想法我怎么能這樣做呢?
謝謝
uj5u.com熱心網友回復:
我會將這個包含編號哈希表的 Hashtable 轉換為 PsCustomObjects 陣列,從而使排序和選擇變得更加容易:
$ht=@{}
$ht[1]=@{Date="11/11/2021"; Number=03321}
$ht[2]=@{Date="10/10/2021"; Number=03321}
$ht[3]=@{Date="09/10/2021"; Number=03321}
# convert to array of PsCustomObjects
$ht.GetEnumerator() | ForEach-Object { [PsCustomObject]$_.Value } |
Sort-Object {[datetime]::ParseExact($_.Date, 'dd/MM/yyyy', $null)} |
Select-Object -First 10
這將產生一個物件陣列,具有屬性Number和Date,按日期排序。
uj5u.com熱心網友回復:
以下腳本用于按日期升序。如果在排序物件中降序添加-降序,也請更改選擇物件中的記錄數
$ht=@{}
$ht[1]=@{Date="11/11/2021"; Number=03320}
$ht[2]=@{Date="10/10/2021"; Number=03321}
$ht[3]=@{Date="09/10/2021"; Number=03329}
$ht.GetEnumerator()| Sort-Object {$_.Value.Date} | Select-Object -First 2 | ForEach-Object { Write-Host $_.Value.Date $_.Value.Number }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/389643.html
