この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

CompareOptions 列挙型

 

公開日: 2016年10月

使用する文字列比較オプションを定義 CompareInfoします。

この列挙型には、メンバー値のビットごとの組み合わせを許可する FlagsAttribute 属性があります。

名前空間:   System.Globalization
アセンブリ:  mscorlib (mscorlib.dll 内)

[SerializableAttribute]
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum CompareOptions

メンバー名説明
IgnoreCase

文字列比較で大文字小文字を区別する必要があることを示します。

IgnoreKanaType

文字列比較でひらがなとカタカナを無視することを示します。 ひらがなとカタカナ文字を指しますひらがなとカタカナ、日本語版の発音を表すことができます。 「コンピューター」または"Internet"などの他の言語から借用語のカタカナが使用されますが、ひらがなはネイティブの日本語の式と、単語の使用されます。 発音は、ひらがなとカタカナの両方で表現できます。 この値が選択されている場合は、1 つのサウンドを示すひらがなが同じ発音カタカナ文字に等しいと見なされます。

IgnoreNonSpace

文字列比較で分音文字などの結合の分音文字を無視することを示します。 Unicode Standard 組み合わせ文字を新しい文字を生成する基本文字を組み合わせて、文字として定義します。 分音文字を組み合わせは、表示されるとき余白位置を占有することはできません。

IgnoreSymbols

文字列の比較が空白文字が区切り記号、通貨記号、パーセント記号、数学記号、アンパサンド、やなどの記号を無視することを示します。

IgnoreWidth

文字列比較で文字幅を無視することを示します。 たとえば、全角と半角カタカナを記述できます。 この値が選択されている場合は、カタカナの全角として書き込まれますが半角として書き込まれた同じ文字に等しいと見なされます。

None

文字列比較の既定のオプションの設定を示します。

Ordinal

文字列の比較が連続する Unicode utf-16 でエンコードされた値を使用する必要があることを示します (コードの単位の比較でのコード単位)、文字列のカルチャに依存しない、高速比較が、いずれかにつながることです。 XXXX のコード単位で始まる文字列16 YYYY で始まる文字列の前に16, 場合は、XXXX16 YYYY よりも小さい16します。 この値は、その他とは組み合わせられません CompareOptions 値は、単独で使用する必要があります。

OrdinalIgnoreCase

文字列比較は、大文字小文字を区別する必要がありますし、序数に基づく比較を実行します。 この手法は、インバリアント カルチャを使用して、結果に序数に基づく比較を実行することを大文字に文字列に変換するのと同じです。

StringSort

文字列の比較が文字列の並べ替えアルゴリズムを使用する必要があることを示します。 文字列の並べ替えハイフンとアポストロフィ、だけでなく他の英数字以外の記号は、文字の英数字の前に記述します。

これらのオプションは、大文字小文字の区別、または種類の文字を無視する必要があるを表します。

.NET Framework は、並べ替えの方法は 3 つを使用します。 word の並べ替え、文字列の並べ替え、および序数の並べ替え。 単語の並べ替えでは、文字列のカルチャに依存した比較を実行します。 特別な重みが割り当てられている特定の英数字以外の文字があります。 たとえば、ハイフン ("-") に割り当てられる重みは非常に小さいため、並べ替えられたリスト内の "coop" と "co-op" の出現位置は隣接します。 点を除いて、特殊なケースがない、文字列の並べ替えは単語の並べ替えに似ています。 そのため、英数字以外のすべてのシンボルは、すべての英数字文字の前に記述します。 序数の並べ替えでは、文字列の各要素のユニコード値に基づいて文字列を比較します。

StringSort 値でのみ使用できる CompareInfo.CompareCompareInfo.GetSortKeyです。 ArgumentException 場合にスローされますが、 StringSort 値を使用 CompareInfo.IsPrefix, 、CompareInfo.IsSuffix, 、CompareInfo.IndexOf, 、または CompareInfo.LastIndexOfです。

System_CAPS_noteメモ

アプリケーションがそのまま使用する文字列比較メソッドを使用可能であれば、 CompareOptions 期待どおりの比較の種類を指定する値。 一般的な規則としてユーザー向けの比較が適切に満たさセキュリティの比較を指定する必要があります (現在のカルチャを使用)、言語のオプションを使用して Ordinal または OrdinalIgnoreCaseです。

次のコード例に示す方法で並べ替え StringSort なしの並べ替えとは異なります StringSortします。

using System;
using System.Collections;
using System.Globalization;


public class SamplesCompareOptions  {

   private class MyStringComparer: IComparer {
      private CompareInfo myComp;   
      private CompareOptions myOptions = CompareOptions.None;

      // Constructs a comparer using the specified CompareOptions.
      public MyStringComparer( CompareInfo cmpi, CompareOptions options )  {
         myComp = cmpi;
         this.myOptions = options;
      }

      // Compares strings with the CompareOptions specified in the constructor.
      public int Compare(Object a, Object b) {
         if (a == b) return 0;
         if (a == null) return -1;
         if (b == null) return 1;

         String sa = a as String;
         String sb = b as String;
         if (sa != null && sb != null)
            return myComp.Compare(sa, sb, myOptions);
         throw new ArgumentException("a and b should be strings.");

      }
   }

   public static void Main()  {

      // Creates and initializes an array of strings to sort.
      String[] myArr = new String[9] { "cant", "bill's", "coop", "cannot", "billet", "can't", "con", "bills", "co-op" };
      Console.WriteLine( "\nInitially," );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

      // Creates and initializes a Comparer to use.
      //CultureInfo myCI = new CultureInfo( "en-US", false );
      MyStringComparer myComp = new MyStringComparer(CompareInfo.GetCompareInfo("en-US"), CompareOptions.None);

      // Sorts the array without StringSort.
      Array.Sort( myArr, myComp );
      Console.WriteLine( "\nAfter sorting without CompareOptions.StringSort:" );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

      // Sorts the array with StringSort.
      myComp = new MyStringComparer(CompareInfo.GetCompareInfo("en-US"), CompareOptions.StringSort);
      Array.Sort( myArr, myComp );
      Console.WriteLine( "\nAfter sorting with CompareOptions.StringSort:" );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

   }

}

/*
This code produces the following output.

Initially,
cant
bill's
coop
cannot
billet
can't
con
bills
co-op

After sorting without CompareOptions.StringSort:
billet
bills
bill's
cannot
cant
can't
con
coop
co-op

After sorting with CompareOptions.StringSort:
bill's
billet
bills
can't
cannot
cant
co-op
con
coop

*/

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: