List内に指定された文字列、または数値があるかどうか検索する方法です。
Containsメソッドを使う方法
Dim list As New List(Of String)()
list.Add("さんま")
list.Add("しゃけ")
list.Add("カツオ")
Dim b As Boolean
b = list.Contains("さんま")
If b = True Then
Console.WriteLine("List内に「さんま」は存在します")
Else
Console.WriteLine("List内に「さんま」は存在しません")
End If
b = list.Contains(“さんま”) と書くと、
Listの中に”さんま”が存在すれば、Trueが返り、
Listの中に”さんま”が存在しなければ、Falseが返ります。
IndexOfメソッドを使う方法
Dim list As New List(Of String)()
list.Add("さんま")
list.Add("しゃけ")
list.Add("カツオ")
Dim i As Integer
i = list.IndexOf("さんま")
If 0 <= i Then
Console.WriteLine("「さんま」のインデックス番号は{0}です", i)
Else
Console.WriteLine("List内に「さんま」は存在しません")
End If
i = list.IndexOf(“さんま”) と書くと、
List内に”さんま”が存在するかどうか検索し、
存在すれば、そのインデックス番号を返します。
Listはインデックス番号が0から始まるので、
list(0)が”さんま” list(1)が”しゃけ” list(2)が”カツオ”になります。
なので、インデックス番号として0が返ります。
もし、List内に”さんま”が存在しない場合は、-1を返します。
IndexOfメソッドは、List内を先頭から順番に検索していきます。
List内を末尾から検索したい場合は、LastIndexOfメソッドを使用します。
速度重視のデータ検索が必要な場合は、どちらを使うか検討して下さい。
スポンサーリンク
BinarySearchメソッドを使う方法
Dim list As New List(Of String)()
list.Add("さんま")
list.Add("しゃけ")
list.Add("カツオ")
list.Sort()
Dim i As Integer
i = list.BinarySearch("さんま")
If 0 <= i Then
Console.WriteLine("「さんま」のインデックス番号は{0}です", i)
Else
Console.WriteLine("List内に「さんま」は存在しません")
End If
BinarySearchメソッドはIndexOfメソッドよりも処理が高速と言われています。
BinarySearchメソッドを使うには、事前にソートが必要です。
i = list.BinarySearch(“さんま”) と書けば、
List内に”さんま”が存在するかどうか検索します。
存在する場合は、インデックス番号が返ります。
存在しない場合は、-1が返ります。
これでList内を検索する事ができるようになりました。