HOWTO · PowerShell

PowerShell で空の配列の配列を作成する方法

この記事では、サブ配列を格納するための空の配列を作成する方法を示します。まず、配列の作成と値の割り当ての基本について説明し、最後に空の配列を作成する方法を見ていきます。

PowerShell は、その柔軟なスクリプト機能を使用して、配列を作成および操作するためのいくつかの方法を提供します。

一般的な要件の 1つは、他の配列を保持できる空の配列を作成することです。このシナリオは、データを多次元構造に整理する必要がある場合にしばしば発生します。

この記事では、PowerShell で空の配列の配列を作成するさまざまな方法を探ります。

PowerShell の配列を理解する

空の配列の配列を作成する前に、PowerShell における配列の基本を理解することが重要です。PowerShell の配列は、要素のコレクションを格納するデータ構造です。

これらの要素は任意のデータ型であり、配列は必要に応じて新しい要素を収容できるように動的にサイズを変更できます。PowerShell は、配列の作成、アクセス、内容の修正を含む、配列を操作するためのいくつかの方法を提供しています。

PowerShell で配列を作成する基本的な例は次のとおりです:

$myArray = @(1, 2, 3, 4, 5)
$myArray

この例では、$myArray に 5つの整数を含む配列が割り当てられています。

出力:

PowerShell の配列

PowerShell では、配列は任意の型の要素を含むことができ、他の配列を含むこともできます。配列の配列、つまりジャグ ged 配列は、異なる配列を持つメイン配列の各要素が他の配列を保持する構造です。

この構造により、異種データを多次元形式で格納でき、異なる基準に基づいて要素を管理およびアクセスするのが容易になります。

PowerShell の配列はゼロインデックス方式であり、最初の要素はインデックス 0 を使用してアクセスし、2 番目の要素はインデックス 1 を使用してアクセスします。PowerShell の配列は動的にサイズを変更できるため、データを管理する柔軟性があります。

@() 配列サブ式演算子を使用して PowerShell で空の配列の配列を作成する方法

@() 配列サブ式演算子は、空の配列を作成するなど、さまざまな配列操作に利用できる PowerShell の多用途なツールです。空の配列の配列を作成するために使用されると、他の配列をその要素として保持できる配列コンテナが初期化されます。

この演算子をコンマ , と共に使用して要素を区切ることで、各要素自体が配列である配列構造を構築できます。

次のコード例を見て、@() 配列サブ式演算子を使用して空の配列の配列を作成する方法を説明します。

$arrayOfArrays = @()

ここでは、@() 配列サブ式演算子を使用して、$arrayOfArrays という空の配列を初期化します。これにより、他の配列を保持できる空の配列コンテナが作成されます。

@() 演算子内に要素が提供されていないため、結果の配列は空です。

空の配列に配列を追加する

空の配列の配列を作成した後、各要素として個別の配列を追加できます。これは通常、+= 演算子を使用して行われ、既存の配列に要素を追加します:

$arrayOfArrays += , (1, 2, 3)
$arrayOfArrays += , (4, 5)
$arrayOfArrays += , (6, 7, 8, 9)

Write-Host "First Array:"
$arrayOfArrays[0]

Write-Host "Second Array:"
$arrayOfArrays[1]

Write-Host "Third Array:"
$arrayOfArrays[2]

このコードセグメントでは、$arrayOfArrays にサブ配列を追加します。各サブ配列が単一の要素として扱われるように、コンマ , を前に付けます。

これにより、PowerShell がサブ配列を単一の配列に結合するのを防ぎます。各サブ配列は括弧内に入れられ、コンマで区切られています。

異なる長さの 3つのサブ配列を追加して柔軟性を示します。

最後に、$arrayOfArrays の内容を表示して、その構造と内容を確認します。PowerShell は配列を出力し、各要素を別々のサブ配列として表示します。

コード出力:

PowerShell で@()を使用した空の配列の配列

出力は、$arrayOfArrays が確かに複数のサブ配列を含む配列であり、それぞれが異なる値のセットを保持していることを示しています。これにより、PowerShell の@() 配列サブ式演算子を使用して空の配列の配列を成功裏に作成したことが確認されます。

New-Object Cmdlet を使用して PowerShell で空の配列の配列を作成する方法 System.Collections.ArrayList クラス

構造化データを格納するために空の配列の配列を作成するために使用できる別のアプローチは、System.Collections.ArrayList クラスと組み合わせた New-Object Cmdlet です。

PowerShell の System.Collections.ArrayList クラスは、柔軟で動的な配列のようなデータ構造を提供します。New-Object Cmdlet を利用することで、このクラスのインスタンスを生成し、空の配列を作成できます。

その後、サブ配列をこの配列の配列に要素として追加できます。このアプローチは動的なサイズ変更と効率的な配列管理を可能にし、さまざまなスクリプトシナリオに適しています。

このアプローチを使用して空の配列の配列を作成する方法を見てみましょう:

$arrayOfArrays = New-Object System.Collections.ArrayList

ここでは、New-Object Cmdlet を使用して System.Collections.ArrayList クラスの新しいインスタンスを生成します。これにより、他の配列を保持できる空の配列コンテナが作成されます。

変数 $arrayOfArrays は、この空の ArrayList オブジェクトを参照します。

配列の配列の要素にアクセスする

空の配列を作成した後、必要に応じてその要素にアクセスして操作できます:

$arrayOfArrays.Add(@(11, 12, 13))
$arrayOfArrays.Add(@(14, 15))
$arrayOfArrays.Add(@(16, 17, 18, 19))

Write-Host "First Array:"
$arrayOfArrays[0]

Write-Host "Second Array:"
$arrayOfArrays[1]

Write-Host "Third Array:"
$arrayOfArrays[2]

このコードセグメントでは、$arrayOfArrays ArrayList オブジェクトにサブ配列を追加します。サブ配列を配列に追加するために、ArrayList オブジェクトの .Add() メソッドを使用します。

各サブ配列は@() 内に囲まれ、単一の要素として扱われるようにします。異なる長さの 3つのサブ配列を追加して、このアプローチの柔軟性を紹介します。

最後に、$arrayOfArrays ArrayList オブジェクトの内容を表示して、その構造と内容を確認します。PowerShell は ArrayList を出力し、各要素を別のサブ配列として表示します。

コード出力:

PowerShell で System.Collections.ArrayList を使用して空の配列の配列を作成する

出力は、$arrayOfArrays が複数のサブ配列を含む ArrayList であり、それぞれが異なる値のセットを保持していることを確認します。これは、PowerShell で New-Object Cmdlet を使用して System.Collections.ArrayList クラスを用いて空の配列の配列を成功裏に作成したことを示しています。

@{} ハッシュテーブルを使用して PowerShell で空の配列の配列を作成する方法

PowerShell では、ハッシュテーブル(@{})はキー-バリュー対を格納する便利な方法を提供します。通常はキー-バリュー対に使用されますが、各キーに空の配列を関連付けることによって空の配列の配列を作成するためにハッシュテーブルを利用することもできます。

この方法は、複数の配列を管理するための明確な組織構造を提供し、配列要素へのアクセスと操作を容易にします。

@{} ハッシュテーブル構文を使用して空の配列の配列を作成する方法は次のとおりです:

$arrayOfArrays = @{}

配列の配列に要素を追加する

ハッシュテーブルアプローチを使用して空の配列の配列を作成したので、必要に応じてその要素にアクセスして操作できます:

$arrayOfArrays["Array1"] += @(1, 2, 3)
$arrayOfArrays["Array2"] += @(4, 5)
$arrayOfArrays["Array3"] += @(6, 7, 8, 9)
$arrayOfArrays

このコードセグメントでは、$arrayOfArrays 内の空の配列にサブ配列を追加しています。各空の配列に対してキー("Array1""Array2""Array3")を使用して配列のインデックスを参照し、その後+= 演算子を使ってサブ配列を追加します。

各サブ配列は@() 内に囲まれ、単一の要素として扱われるようにします。

最後に、$arrayOfArrays ハッシュテーブルの内容を表示して、その構造と内容を確認します。PowerShell はハッシュテーブルを出力し、各キー-バリューペアを表示し、値はサブ配列を含む配列です。

コード出力:

PowerShell で@{}を使用して空の配列を作成する

出力は、$arrayOfArrays が 3つのキー("Array1""Array2""Array3")を含むハッシュテーブルであり、それぞれが異なる値のセットを持つ配列に関連付けられていることを確認します。

結論

結論として、PowerShell で空の配列の配列を作成することは、スクリプトや自動化タスクにおける複雑なデータ構造を管理するための柔軟性を提供します。

私たちはこれを達成するための 3つの異なる方法を探りました:@() 配列サブ式演算子、New-Object Cmdlet と System.Collections.ArrayList クラス、@{} ハッシュテーブル構文の再利用。各方法は、その利点と考慮事項を提供し、異なる好みや要件に対応しています。

@() 配列サブ式演算子は、空の配列を効率的に作成するためにネイティブの PowerShell 構文を利用した簡潔で直接的なアプローチを提供します。一方、New-Object Cmdlet と System.Collections.ArrayList クラスは、動的なサイズ変更と管理機能を提供し、頻繁な配列操作を必要とするシナリオに適しています。

最後に、@{} ハッシュテーブル構文の再利用は、一般的ではありませんが、特定のコンテキストで簡潔さと可読性を提供します。

選択された方法にかかわらず、空の配列の配列を作成することを習得することで、PowerShell ユーザーは堅牢なスクリプトと自動化を開発するための重要なスキルを得ることができます。