CompareToメソッド、Compareメソッド、Equalsメソッドでは、文字列比較時の動作をStringComparisonで指定することができます。 例えば、大文字小文字の違いを無視して文字列の比較を行うことができます。
String.Compare・Equalsメソッドで大文字小文字の違いを無視する
Imports System
Class Sample
Shared Sub Main()
Dim s1 As String = "Bar"
Dim s2 As String = "bar"
Dim s3 As String = "BAR"
Console.WriteLine("Compare({0}, {1}) : {2}", s1, s2, String.Compare(s1, s2, StringComparison.InvariantCulture)) ' 大文字小文字の違いを無視しない
Console.WriteLine("Compare({0}, {1}) : {2}", s1, s2, String.Compare(s1, s2, StringComparison.InvariantCultureIgnoreCase)) ' 大文字小文字の違いを無視する
Console.WriteLine("Compare({0}, {1}) : {2}", s1, s3, String.Compare(s1, s3, StringComparison.InvariantCulture))
Console.WriteLine("Compare({0}, {1}) : {2}", s1, s3, String.Compare(s1, s3, StringComparison.InvariantCultureIgnoreCase))
Console.WriteLine("Equals({0}, {1}) : {2}", s1, s2, String.Equals(s1, s2, StringComparison.InvariantCulture))
Console.WriteLine("Equals({0}, {1}) : {2}", s1, s2, String.Equals(s1, s2, StringComparison.InvariantCultureIgnoreCase))
Console.WriteLine("Equals({0}, {1}) : {2}", s1, s3, String.Equals(s1, s3, StringComparison.InvariantCulture))
Console.WriteLine("Equals({0}, {1}) : {2}", s1, s3, String.Equals(s1, s3, StringComparison.InvariantCultureIgnoreCase))
End Sub
End Class
実行結果
Compare(Bar, bar) : 1 Compare(Bar, bar) : 0 Compare(Bar, BAR) : -1 Compare(Bar, BAR) : 0 Equals(Bar, bar) : False Equals(Bar, bar) : True Equals(Bar, BAR) : False Equals(Bar, BAR) : True
文字列比較時のオプションStringComparisonについては文字列と比較オプション・カルチャの並べ替え規則 §.StringComparison列挙型とStringComparerクラスで詳しく説明しています。