方法 : 複数の要素型が混在する配列を作成する
更新 : 2007 年 11 月
配列で宣言するのは 1 つのデータ型だけです。したがって、すべての要素はそのデータ型である必要があります。すべての要素は綿密に関連し合っており、類似した型の値を持つため、通常はこの制約は望ましいものです。しかし、場合によっては要素が綿密に関連していなかったり、類似した型の値を持っていない場合があります。そのような場合は、オブジェクト型 (Object)の配列要素を宣言できます。個々の要素は、数字、文字、文字列、オブジェクト、および他の配列など、異なる種類のデータをポイントできるようになります。
異なるデータ型を持つ要素が混在する配列を作成するには
配列をObjectとして宣言します。Object要素の配列を保持する変数を宣言して、配列を作成し、それを変数に割り当てる例を次に示します。
Dim mixedTypes As Object() = New Object() {}
Object データ型を使用する場合、特定のデータ型を指定した場合に比べてパフォーマンスの効率は劣ることを念頭に置いてください。 これは実行時に、ボックス化とボックス化解除と呼ばれる操作によって、通常のデータ型とObjectの間でデータ変換を行う必要があるためです。これを頻繁に実行すると、このような追加の処理によってパフォーマンスに影響を及ぼす場合があります。
配列内の異なるデータ型の要素にアクセスするには
通常の方法で要素を読み取りまたは書き込みます。任意のデータ型の要素をObject配列に保存したり、配列から取得したりできます。
異なるデータ型の情報をObject配列に挿入する実際の例を次に示します。配列内の従業員情報を変数 employeeData に保存します。
Dim employeeData(3) As Object employeeData(0) = "Alex Hankin" employeeData(1) = "4242 Maple Street" employeeData(2) = 48 employeeData(3) = #8/23/1956#
Object配列から異なるデータ型の情報を取得するには、次の例で示すように、要素を適切なデータ型に変換します。
Dim age As Integer = CInt(employeeData(2)) Dim birthDate as Date = CDate(employeeData(3))
要素が互いに類似していない、または関連していない場合、別の方法として、要素をObject配列ではなく、コレクションに入れます。詳細については、「配列の代わりとしてのコレクション」を参照してください。