ここでは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で配列の情報の取得、配列の要素数の変更や並び替えの方法について解説しました。