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

String.Compare メソッド (String, String, CultureInfo, CompareOptions)

 

指定した 2 つの String オブジェクトを比較し、2 つの文字列の互いのリレーションシップを並べ替え順序で示す整数を返します。比較時に、指定した比較オプションと、比較に影響を及ぼすカルチャ固有の情報を使用します。

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

public static int Compare(
	string strA,
	string strB,
	CultureInfo culture,
	CompareOptions options
)

パラメーター

strA
Type: System.String

比較する最初の文字列。

strB
Type: System.String

比較する 2 番目の文字列。

culture
Type: System.Globalization.CultureInfo

カルチャ固有の比較情報を提供するカルチャ。

options
Type: System.Globalization.CompareOptions

比較の実行時に使用するオプション (大文字と小文字の違いや記号を無視するなど)。

戻り値

Type: System.Int32

strAstrB との構文上の関係を示す 32 ビット符号付き整数。次の表を参照してください。

value

Condition

0 より小さい値

並べ替え順序において strAstrB の前になります。

Zero

strA は並べ替え順序で、strB と同じ位置に出現します。

0 より大きい値

並べ替え順序において strAstrB の後ろになります。

Exception Condition
ArgumentException

optionsCompareOptions 値ではありません。

ArgumentNullException

culturenull です。

比較を使用して、cultureパラメーターを大文字小文字の規則や個別の文字のアルファベット順など、カルチャに固有の情報を取得します。 たとえば、特定のカルチャでは、すべてのユーザーを特定の方法で大文字と小文字を比較することや、文字の並べ替え順序は、その前またはそれに続く文字によって異なりますが 1 文字として扱われる特定の文字の組み合わせを指定できます。

System_CAPS_caution注意

Compare(String, String, CultureInfo, CompareOptions)メソッドが、主に、並べ替えや操作をアルファベット順に並べ替えに使用するために設計されています。 これはできません、メソッド呼び出しの主な目的は、(メソッド呼び出しの目的は、ゼロの戻り値をテストするには) の場合は、2 つの文字列が等価かどうかを決定するときに使用する必要があります。 2 つの文字列が等価かどうかを判断するのには、呼び出し、Equalsメソッドです。

比較は、によってさらに指定することができます、optionsパラメーターの 1 つまたは複数のメンバーで構成されるCompareOptions列挙体です。 ただし、このメソッドの目的は、カルチャに依存した文字列の比較を実行するため、CompareOptions.OrdinalCompareOptions.OrdinalIgnoreCase値がある影響しません。

比較対象値のいずれかまたは両方を指定できますnullです。 定義では、任意の文字列を含むString.Empty、相互に比較して 2 つの null 参照と、null 参照を超えるが等しい。

非等値が検出されるか、両方の文字列を比較したときに、比較が終了します。 ただし、2 つの文字列の比較で 1 つの文字列の末尾に等しく、残りの文字があるその他の文字列場合は、残りの文字の文字列は大きいと見なされます。

呼び出し時の注意:

文字セットには無視できる文字が含まれています。これらの文字は、言語またはカルチャに依存した比較を実行する際には考慮されません。 Compare(String, String, CultureInfo, CompareOptions)カルチャに依存した比較を実行するときに、メソッドでこのような文字が考慮されません。 比較で無視できる文字を認識するには、値を指定CompareOptions.OrdinalまたはCompareOptions.OrdinalIgnoreCaseoptionsパラメーター。

次の例は、次の 3 つの異なる方法で 2 つの文字列を比較します、EN-US カルチャでは、の言語的な比較を使用する。による、EN-US カルチャでは、大文字小文字を区別の言語的な比較序数に基づく比較を使用してください。 比較の 3 つのメソッドが 3 つの異なる結果を生成する方法を示しています。

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string string1 = "brother";
      string string2 = "Brother";
      string relation;
      int result;

      // Cultural (linguistic) comparison.
      result = String.Compare(string1, string2, new CultureInfo("en-US"), 
                              CompareOptions.None);
      if (result > 0)
         relation = "comes after";
      else if (result == 0)
         relation = "is the same as";
      else
         relation = "comes before";

      Console.WriteLine("'{0}' {1} '{2}'.", 
                        string1, relation, string2);

      // Cultural (linguistic) case-insensitive comparison.
      result = String.Compare(string1, string2, new CultureInfo("en-US"), 
                              CompareOptions.IgnoreCase);
      if (result > 0)
         relation = "comes after";
      else if (result == 0)
         relation = "is the same as";
      else
         relation = "comes before";

      Console.WriteLine("'{0}' {1} '{2}'.", 
                        string1, relation, string2);

       // Culture-insensitive ordinal comparison.
      result = String.CompareOrdinal(string1, string2);
      if (result > 0)
         relation = "comes after";
      else if (result == 0)
         relation = "is the same as";
      else
         relation = "comes before";

      Console.WriteLine("'{0}' {1} '{2}'.", 
                        string1, relation, string2);
   }
}
// The example produces the following output:
//    'brother' comes before 'Brother'.   
//    'brother' is the same as 'Brother'.
//    'brother' comes after 'Brother'.

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