基本的なことですが、配列の初期化方法について説明します。
まずは、基本的な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()