大文字と小文字を無視した比較

StringクラスもしくはComparerクラスを使用する

Stringクラスは

IComparable ICloneable IConvertible IComparable(Of String) IEnumerable(Of Char) IEnumerable IEquatable(Of String)
これらを継承している

このクラスを使用した比較は、カルチャに依存します。CultureInfo.InvariantCultureプロパティによって指定されるCultureInfoオブジェクトを使用し比較します。カルチャは、Thread.CurrentCultureプロパティによって指定されます。

※インバリアント・カルチャとは?プロジェクトの規定値で設定したLanguageプロパティのリストにあるInvariant言語 日本語訳は 不変 変更のない


使用例
static void sample1()
{
int result;
result = String.Compare("NET", "net", true);
}

static void sample2()
{
int result;
result = String.Compare("NET", "net");
}

比較結果が0の場合は等しい1の場合は等しくない

sample1について

public static int Compare(string strA, string strB, bool ignoreCase) *msdn
パラメーター bool ignoreCaseについて
比較時に大文字と小文字の区別 無視:true 以外:false
戻り値は System.int32

0より小 strAがstrBより小さい
0= strAとstrBは等しい
0より大 strAがstrBより大きい

StringComparerクラスは

IComparer IEqualityComparer IComparer(Of String) IEqualityComparer(Of String) これらを継承している

このクラスから派生したオブジェクトは、比較規則を考え文字列ベースの比較操作、値の比較操作 ハッシュコード操作の実行が可能。型固有の比較機能を作成し、ジェネリックコレクションで要素をソートできます。 Hashtable Dictionary SortedList SortedList 等のクラスは StringComparerクラスを使用している *msdn

使用例
static void sample1()
{
	Hashtable hashtable1 = new Hashtable(StringComparer.OrdinalIgnoreCase);
        hashtable1.Add("BLACK",  Pens.Black);
	//this comment out case by checking
        //hashtable1.Add("black", Pens.Black);
        Console.WriteLine(String.Format("{0}個のデータ",hashtable1.Count));

        Hashtable hashtable2 = new Hashtable();
        hashtable2.Add("BLACK", Pens.Black);
        hashtable2.Add("black", Pens.Black);
        Console.WriteLine(String.Format("{0}個のデータ", hashtable2.Count));
}

プロパティ

名前説明
CurrentCulture 現在のカルチャの単語ベースの比較規則を使用して大文字と小文字を区別して文字列を比較する
StringComparerオブジェクトを取得します。
CurrentCultureIgnoreCase 現在のカルチャの言語ベースの比較規則を使用して、大文字と小文字を区別せずに文字列を比較する
StringComparerオブジェクトを取得します。
InvariantCulture インバリアント カルチャの単語ベースの比較規則を使用して、大文字と小文字を区別して文字列を比較する
StringComparerオブジェクトを取得します
InvariantCultureIgnoreCase インバリアント カルチャの単語ベースの比較規則を使用して、大文字と小文字を区別せずに文字列を比較する
StringComparer オブジェクトを取得します。
Ordinal 大文字と小文字を区別して序数の文字列比較を実行する
StringComparer オブジェクトを取得します。
OrdinalIgnoreCase 大文字と小文字を区別せずに序数の文字列比較を実行する
StringComparer オブジェクトを取得します。