hakeの日記

Windows環境でプログラミングの勉強をしています。

PowerShell - 配列

代入

PS C:\> $ary = 1,2,3,4,5
PS C:\> $ary = 1 .. 5

PS C:\> $ary = @() #空配列

PS C:\> $ary = @(1,2,3,4,5)
PS C:\> $ary = "abcdefg" -split "" # 1文字ずつに分割(前後に空文字の要素が入る)
PS C:\> $ary = "abcdefg" -split "\B" # 1文字ずつに分割(前後に空文字の要素が入らない)

要素アクセス

PS C:\> $a = 1..5
PS C:\> $a[2] = 300
PS C:\> $a
1
2
300
4
5

PS C:\> $a[0]
1
PS C:\> $a[0,2,4]
1
300
5
PS C:\> $a[0..3]
1
2
300
4
PS C:\> $a[4..0] # 逆順に並べ替え
5
4
300
2
1

要素追加

PS C:\> $a = 1..5
PS C:\> $a += 100 # 末尾に追加
PS C:\> $a
1
2
3
4
5
100
PS C:\> $a = @(-100) + $a # 先頭に追加
PS C:\> $a
-100
1
2
3
4
5
100

配列のコピー

PS C:\> $a = 0..4
PS C:\> $b = $a # $bは$aと同じオブジェクトへの参照
PS C:\> $a[0] = 100
PS C:\> $b
100
1
2
3
4
PS C:\> $a.GetHashCode()
28959488
PS C:\> $b.GetHashCode()
28959488

PS C:\> $a = 0..4
PS C:\> $b = $a.Clone() # 別オブジェクトとしてコピー
PS C:\> $a[0] = 100
PS C:\> $b
0
1
2
3
4
PS C:\> $a.GetHashCode()
38658037
PS C:\> $b.GetHashCode()
45724662

その他

PS C:\> $a.Count # 要素数
7
PS C:\> $a.Contains(-100) # 要素に存在するか
True
PS C:\> -100 -in $a # 要素に存在するか(V3以降)
True