ここではVB.NETで配列の情報の取得、配列の要素数の変更や並び替えの方法を紹介します。

配列の情報を取得する

配列の要素数を取得する(Array.Lengthプロパティ)

Dim arr() As String = {"A", "B", "C"}

' Lengthで配列の要素数を取得する
Console.WriteLine(arr.Length) ' 実行結果:3


指定した値と一致する要素が含まれるか調べる(Array.IndexOfメソッド)

Dim arr() As String = {"A", "B", "C"}

' "B"の位置を取得する
Dim index1 As Integer = Array.IndexOf(arr, "B")
Console.WriteLine(index1) ' 実行結果:1

存在しない場合は-1を返します。


配列を操作する

配列の要素数を変更する(ReDimステートメント)

Dim arr() As String = {"A", "B", "C"}

' ReDimで配列の要素数を変更する
ReDim arr(5)

ReDimステートメントは、新しい配列として作成しますので配列の値は保持されません。


配列の値を保持したまま要素数を変更する(ReDim Preserveステートメント)

Dim arr() As String = {"A", "B", "C"}

' ReDim Preserveで配列の要素数を変更する
ReDim Preserve arr(5)


配列をクリアする(Array.Clearメソッド)

Dim arr() As String = {"A", "B", "C"}

' 配列の0番目から最後までクリアする
Array.Clear(arr, 0, arr.Length)

Array.Clear(配列変数名, 開始インデックス, 要素数)


配列の要素を昇順に並び替える(Array.Sortメソッド)

Dim arr() As String = {"B", "C", "A"}

' 配列の要素を昇順に並び替える
Array.Sort(arr)


配列の要素を降順に並び替える(Array.Reverseメソッド

Dim arr() As String = {"B", "C", "A"}

' 配列の要素をに降順に並び替える
Array.Reverse(arr)


配列をコピーする(Array.Clone メソッド

以下はArray.Cloneメソッドを使って配列の全要素をコピーする例です。

Dim arr1() As String = {"A", "B", "C", "D", "E"}
Dim arr2() As String

' 全要素をコピーする
arr2 = arr1.Clone

' arr1の2番目を変更する
arr1(1) = "*"

For i = 0 To UBound(arr1)
    Console.WriteLine(arr1(i))
Next
' 実行結果:A * C D E

For i = 0 To UBound(arr2)
    Console.WriteLine(arr2(i))
Next
' 実行結果:A B C D E


配列をコピーする(Array.Copyメソッド

以下は配列の全要素をコピーする例です。

Dim arr1() As String = {"A", "B", "C", "D", "E"}
Dim arr2(arr1.Length) As String

' 全要素をコピーする
Array.Copy(arr1, arr2, arr1.Length)

' arr1の2番目を変更する
arr1(1) = "*"

For i = 0 To UBound(arr1)
    Console.WriteLine(arr1(i))
Next
' 実行結果:A * C D E

For i = 0 To UBound(arr2)
    Console.WriteLine(arr2(i))
Next
' 実行結果:A B C D E


以下は配列の先頭から指定した要素数をコピーする例です。

Dim arr1() As String = {"A", "B", "C", "D", "E"}
Dim arr2(arr1.Length) As String

' arr1の先頭の要素から3要素をarr2にコピーする
Array.Copy(arr1, arr2, 3)

For i = 0 To UBound(arr1)
    Console.WriteLine(arr1(i))
Next
' 実行結果:A B C D E

For i = 0 To UBound(arr2)
    Console.WriteLine(arr2(i))
Next
' 実行結果:A B C


以下は配列の指定位置から指定した要素数をコピーする例です。

Dim arr1() As String = {"A", "B", "C", "D", "E"}
Dim arr2(arr1.Length) As String

' arr1の2番目の要素から3要素をarr2にコピーする
Array.Copy(arr1, 1, arr2, 0, 3)

For i = 0 To UBound(arr1)
    Console.WriteLine(arr1(i))
Next
' 実行結果:A B C D E

For i = 0 To UBound(arr2)
    Console.WriteLine(arr2(i))
Next
' 実行結果:B C D


以上、VB.NETで配列の情報の取得、配列の要素数の変更や並び替えの方法について解説しました。