CompareOptionsのうち、IgnoreCase, IgnoreKanaType, IgnoreWidthはそれぞれ大文字小文字、ひらがなとカタカナ、全角と半角を区別しないで比較するように指定します。 これらの値や他の値と組み合わせて使用することも出来ます。
CompareOptions.IgnoreCase・IgnoreKanaType・IgnoreWidthを指定して大文字小文字・ひらがなカタカナ・全角半角を区別せずに比較する
using System;
using System.Globalization;
using System.Threading;
class Sample {
static void Main()
{
Console.WriteLine(Thread.CurrentThread.CurrentCulture);
Compare("abc", "ABC", CompareOptions.None);
Compare("abc", "ABC", CompareOptions.IgnoreCase);
Compare("abc", "abc", CompareOptions.IgnoreWidth);
Compare("abc", "ABC", CompareOptions.IgnoreCase);
Compare("abc", "ABC", CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth);
Console.WriteLine();
Compare("あいうえお", "アイウエオ", CompareOptions.None);
Compare("あいうえお", "アイウエオ", CompareOptions.IgnoreKanaType);
Compare("アイウエオ", "アイウエオ", CompareOptions.None);
Compare("アイウエオ", "アイウエオ", CompareOptions.IgnoreWidth);
Compare("アイウエオ", "あいうえお", CompareOptions.IgnoreKanaType);
Compare("アイウエオ", "あいうえお", CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth);
}
private static void Compare(string s1, string s2, CompareOptions options)
{
Console.WriteLine("{0} {1} : {2,2} ({3:f})", s1, s2, String.Compare(s1, s2, Thread.CurrentThread.CurrentCulture, options), options);
}
}
実行結果
ja-JP abc ABC : -1 (None) abc ABC : 0 (IgnoreCase) abc abc : 0 (IgnoreWidth) abc ABC : -1 (IgnoreCase) abc ABC : 0 (IgnoreCase, IgnoreWidth) あいうえお アイウエオ : 1 (None) あいうえお アイウエオ : 0 (IgnoreKanaType) アイウエオ アイウエオ : -1 (None) アイウエオ アイウエオ : 0 (IgnoreWidth) アイウエオ あいうえお : -1 (IgnoreKanaType) アイウエオ あいうえお : 0 (IgnoreKanaType, IgnoreWidth)