CompareToメソッド、Compareメソッド、Equalsメソッドでは、文字列比較時の動作をStringComparisonで指定することができます。 例えば、大文字小文字の違いを無視して文字列の比較を行うことができます。
String.Compare・Equalsメソッドで大文字小文字の違いを無視する
using System;
class Sample {
static void Main()
{
var s1 = "Bar";
var s2 = "bar";
var s3 = "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));
}
}
実行結果
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クラスで詳しく説明しています。