分かりやすく、使いやすく。

連想配列(ハッシュ)をキーや値で並び替える方法(連想配列のソート)

スポンサーリンク

PowerShell で連想配列(ハッシュ)の並べ替えを行うには sort を使用します。

  1. キーの昇順、キーの降順で並べ替えする方法
  2. 値の昇順、値の降順で並べ替えする方法


キーの昇順、キーの降順で並べ替えする方法

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 連想配列(ハッシュ)を作成する。
$my_hash = @{
    'Key1' = 'Val2';
    'Key2' = 'Val1';
    'Key3' = 'Val3';
};
 
# キーの昇順に並べ替える
$my_hash = $my_hash.GetEnumerator() | sort -Property key
 
Write-Host 'キー昇順に並べ替え後';
foreach($entry in $my_hash){
    $key = $entry.Key;
    $val = $entry.Value;
    Write-Host ('キー:' + $key + ' → 値:' + $val);
}
 
# キーの降順に並べ替える
$my_hash = $my_hash.GetEnumerator() | sort -Property key -Descending
 
Write-Host 'キー降順に並べ替え後';
foreach($entry in $my_hash){
    $key = $entry.Key;
    $val = $entry.Value;
    Write-Host ('キー:' + $key + ' → 値:' + $val);
} 

実行結果は次の通りです。

キー昇順に並べ替え後
キー:Key1 → 値:Val2
キー:Key2 → 値:Val1
キー:Key3 → 値:Val3
キー降順に並べ替え後
キー:Key3 → 値:Val3
キー:Key2 → 値:Val1
キー:Key1 → 値:Val2 

値の昇順、値の降順で並べ替えする方法

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 連想配列(ハッシュ)を作成する。
$my_hash = @{
    'Key1' = 'Val2';
    'Key2' = 'Val1';
    'Key3' = 'Val3';
};
 
# 値の昇順に並べ替える
$my_hash = $my_hash.GetEnumerator() | sort -Property value
 
Write-Host '値の昇順に並べ替え後';
foreach($entry in $my_hash){
    $key = $entry.Key;
    $val = $entry.Value;
    Write-Host ('キー:' + $key + ' → 値:' + $val);
}
 
# 値の降順に並べ替える
$my_hash = $my_hash.GetEnumerator() | sort -Property value -Descending
 
Write-Host '値の降順に並べ替え後';
foreach($entry in $my_hash){
    $key = $entry.Key;
    $val = $entry.Value;
    Write-Host ('キー:' + $key + ' → 値:' + $val);
} 
値の昇順に並べ替え後
キー:Key2 → 値:Val1
キー:Key1 → 値:Val2
キー:Key3 → 値:Val3
値の降順に並べ替え後
キー:Key3 → 値:Val3
キー:Key1 → 値:Val2
キー:Key2 → 値:Val1 
スポンサーリンク
スポンサーリンク