我想將具有相同名稱的計數相加。陣列看起來像這樣:
Name Count
---- -----
6027 12
4999 6
3018 5
1008 3
1006 19
6027 12
4065 10
3018 9
4999 7
489 4
1008 3
5016 19
我想將所有具有相同名稱的計數相加。想要的結果如下所示:
Name Count
---- -----
6027 24
4999 6
3018 14
1008 6
1006 19
4065 10
4999 7
489 4
5016 19
到目前為止,我最好的做法是按名稱對物件進行分組,這不會產生所需的輸出。(數字與上面的例子有點不同)
$list | Group-Object name | sort count -Descending
$list
輸出:
Count Name Group
----- ---- -----
8 3018 {@{Name=3018; Count=5}, @{Name=3018; Count=9}, @{Name=3018; Count=9}, @{Name=3018; Count=9}...}
7 6027 {@{Name=6027; Count=12}, @{Name=6027; Count=12}, @{Name=6027; Count=12}, @{Name=6027; Count=12}...}
7 4999 {@{Name=4999; Count=6}, @{Name=4999; Count=7}, @{Name=4999; Count=16}, @{Name=4999; Count=12}...}
7 1008 {@{Name=1008; Count=3}, @{Name=1008; Count=3}, @{Name=1008; Count=3}, @{Name=1008; Count=3}...}
4 1006 {@{Name=1006; Count=19}, @{Name=1006; Count=12}, @{Name=1006; Count=6}, @{Name=1006; Count=30}}
3 4065 {@{Name=4065; Count=10}, @{Name=4065; Count=35}, @{Name=4065; Count=30}}
3 5016 {@{Name=5016; Count=19}, @{Name=5016; Count=18}, @{Name=5016; Count=20}}
謝謝四爺的幫助!
uj5u.com熱心網友回復:
iRon 的有用評論使用哈希表提出了一個很好且有效的解決方案,其中鍵Name是屬性的唯一值,值是屬性的總和Count。我們可以使用生成的哈希表來更新你已經擁有的物件。
下面的示例假設$obj有您在問題中顯示的物件陣列。
$map = @{}
foreach($i in $obj) {
$map[$i.Name] = [int] $i.Count
}
foreach($i in $obj) {
$i.Count = $map[$i.Name]
}
$obj # => Should be now updated
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/466233.html
