トッカンソフトウェア

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]]





ページのトップへ戻る