PowerShell リスト、マップ
PowerShellのリスト、マップ関連をまとめます。
リスト
# 宣言は@()
$ary = @(1, 2, 3)
# 追加は +=
$ary += 5
# 更新は[]でインデックス指定
$ary[0] = 10
# 削除は $null
$ary[1] = $null
存在確認
$ary.Contains(2)
# ループに Select-Object を付けると削除分は省いてくれる
# ループに Sort-Object を付けるとソートしてくれる
# さらに -Descending を付けるとソートが逆順になる
foreach ($aaa in $ary | Select-Object | Sort-Object -Descending)
{
echo ('$aaa:' + $aaa)
}
# サイズは.Length(事前に Select-Object で削除分を削除)
$ary = $ary | Select-Object
echo $ary.Length
# -First 1 で一番初めの要素を取得できる。数字部分で取得数の指定ができる -Last、-Skip などもある
echo $ary | Select-Object | Sort-Object -Descending | Select-Object -First 1
マップ
# 宣言は@{}
$map = @{a = "文字"; b = 1;}
# 追加
$map.Add("c", "追加")
# 追加 or 更新
$map.d = 2
$map["a"] = "更新"
# 削除
$map.Remove("b")
# ループ
foreach ($key in $map.Keys) {
$key + ":" + $map[$key]
}
# 存在確認 キー or バリュー
$map.Contains("a")
# 存在確認 キー
$map.ContainsKey("a")
# 存在確認 バリュー
$map.ContainsValue(2)
# サイズ取得
$map.Count
# クリア
$map.Clear()
セット
# 生成は New-Object System.Collections.Generic.HashSet
$set = New-Object System.Collections.Generic.HashSet[string]
# 追加
$set.Add("abc")
$set.Add("def")
# 削除
$set.Remove("def")
# ループ
foreach ($aaa in $set)
{
echo ('$aaa:' + $aaa)
}
# 存在確認
echo ('Contains:' + $set.Contains("abc"))
# サイズ取得
$set.Count
# クリア
$set.Clear()
各種の型
各種の型は以下になります
$ary = @()
$map = @{}
$set = New-Object System.Collections.Generic.HashSet[string]
echo ($ary.GetType().Name + " - " + $ary.GetType().FullName )
echo ($map.GetType().Name + " - " + $map.GetType().FullName )
echo ($set.GetType().Name + " - " + $set.GetType().FullName )
出力結果
Object[] - System.Object[]
Hashtable - System.Collections.Hashtable
HashSet`1 - System.Collections.Generic.HashSet`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
ページのトップへ戻る