VB.NET 配列の初期化方法について

基本的なことですが、配列の初期化方法について説明します。

まずは、基本的な1次元配列の初期化です。

        ' 1次元配列の原始的な方法で初期化
        Dim names1 As String() = New String(2) {}
        names1(0) = "John"
        names1(1) = "Paul"
        names1(2) = "Mary"
         
        ' 一般的な1次元配列の初期化(配列のサイズは明示しない方が良い)
        Dim names2 As String() = New String() {"John""Paul""Mary"}
         
        ' 実は右辺の New String() は省略可能
        Dim names3 As String() = {"John""Paul""Mary"}
         
        ' 実は左辺を型推論する場合は New String() は省略できない
        Dim names4 = New String() {"John""Paul""Mary"}

次に、2次元配列の初期化と、あまりつかいませんがジャグ配列の初期化についてです。

        ' 2次元配列の初期化
        Dim num1 As Integer(,) = New Integer(,) {{1, 2}, {3, 4}, {5, 6}}
         
        ' 右辺の New Integer(,) は省略可能
        Dim num2 As Integer(,) = {{1, 2}, {3, 4}, {5, 6}}
         
        ' 左辺を型推論する場合は New Integer(,) は省略できない
        Dim num3 = New Integer(,) {{1, 2}, {3, 4}, {5, 6}}
         
        ' ジャグ配列
        Dim jag1 As Integer()() = New Integer()() {New Integer() {2, 4, 6}, New Integer() {1, 3, 5, 7, 9}}
         
        ' 右辺の New Integer()() は省略可能
        Dim jag2 As Integer()() = {New Integer() {2, 4, 6}, New Integer() {1, 3, 5, 7, 9}}
         
        ' 左辺を型推論する場合は New Integer()() は省略できない
        Dim jag3 = New Integer()() {New Integer() {2, 4, 6}, New Integer() {1, 3, 5, 7, 9}}

次に、特定の同じ値ですべて初期化する方法です。ここでは Enumerable.Repeat を使用します。

        ' すべて -1 で 長さ100 の配列を初期化
        Dim minus As Integer() = Enumerable.Repeat(Of Integer)(-1, 100).ToArray()
         
        ' すべて "Taro" で 長さ100 の配列を初期化
        Dim taro As String() = Enumerable.Repeat(Of String)("Taro", 100).ToArray()
使用環境: Visual Studio 2010 .NET Framework 3.0 以降