Array.IndexOfメソッドを使うことで、配列内における指定した値を持つ要素の位置を検索して取得することが出来ます。
このメソッドは配列の前方から検索を行うため、配列内に同一の値を持つ要素がある場合は、そのうちより小さい(最初に見つかった)インデックスを返します。 逆に、Array.LastIndexOfメソッドは配列の後方から検索を行うため、より大きい(前方から見て最後に見つかった)インデックスを返します。 どちらのメソッドも、配列内に該当する要素が無い場合は-1が返されます。
なお、Array.IndexOf, Array.LastIndexOfメソッドでは多次元配列内の要素の位置を検索することは出来ません。 メソッドに多次元配列を指定すると、RankExceptionがスローされます。
Array.IndexOf/LastIndexOfメソッドで要素の位置を前方/後方から検索する
Imports System
Class Sample
Shared Sub Main()
Dim arr() As Integer = {0, 1, 0, 2, 0, 3}
' 値に0が格納されている最初のインデックスを取得
Console.WriteLine("IndexOf(0) = {0}", Array.IndexOf(arr, 0))
' 値に0が格納されている最後のインデックスを取得
Console.WriteLine("LastIndexOf(0) = {0}", Array.LastIndexOf(arr, 0))
' 値に4が格納されている最初のインデックスを取得
Console.WriteLine("IndexOf(4) = {0}", Array.IndexOf(arr, 4))
End Sub
End Class
実行結果
IndexOf(0) = 0 LastIndexOf(0) = 4 IndexOf(4) = -1