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

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

 

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

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

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

パラメーター

strA

比較で使用する最初の文字列。

indexA

strA 内の部分文字列の開始位置。

strB

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

indexB

strB 内の部分文字列の開始位置。

length

比較する各部分文字列の最大文字数。

culture

カルチャ固有の比較情報を提供するオブジェクト。

options

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

戻り値

Type: System.Int32

2 つの部分文字列の構文上の関係を示す整数。次の表を参照してください。

value

Condition

0 より小さい値

部分文字列 strA 部分文字列の前に strB 並べ替え順序で。

Zero

同じ位置に、並べ替えの順序で発生する、部分文字列または length は 0 です。

0 より大きい値

部分文字列 strA 部分文字列に依存 strB 並べ替え順序で。

Exception Condition
ArgumentException

options CompareOptions 値。

ArgumentOutOfRangeException

indexA より大きい strA.Lengthです。

または

indexB より大きい strB.Lengthです。

または

indexA, 、indexB, 、または length が負の値です。

または

いずれか strA または strBnull, 、および length が 0 より大きい。

ArgumentNullException

culturenull です。

比較する部分文字列の開始 strA 位置にある indexAstrB 位置にある indexBです。最初の部分文字列の長さの長さ strA マイナス indexAです。2 番目の部分文字列の長さの長さ strB マイナス indexBです。

比較する文字の数が、2 つの部分文字列の長さの小さい方と lengthです。 indexA, 、indexB, 、および length パラメーターを 0 以上にする必要があります。

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

System_CAPS_caution注意

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

いずれかまたは両方の strAstrB できる nullです。定義上、任意の文字列を含む String.Empty, 、比較は null 参照の 2 つの null 参照を使用するより大きくの比較で互いに等しくします。

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

比較は、非等値が検出されるか、両方の部分文字列が比較されているときに終了します。ただし、2 つの文字列の 1 つの文字列の末尾に時間が等しい場合に、その他の文字列が残りの文字とすると、文字列に、残りの文字が大きいと見なされます。戻り値は、最後に実行される比較の結果です。

呼び出し元へのメモ:

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

次の例では、 Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) 2 人のユーザーの姓を比較するメソッド。次にアルファベット順にそれらを表示します。

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string name1 = "Jack Smith";
      string name2 = "John Doe";

      // Get position of space character.
      int index1 = name1.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int index2 = name2.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int length = Math.Max(name1.Length, name2.Length);

      Console.WriteLine("Sorted alphabetically by last name:");
      if (String.Compare(name1, index1, name2, index2, length, 
                         new CultureInfo("en-US"), CompareOptions.IgnoreCase) < 0)
         Console.WriteLine("{0}\n{1}", name1, name2); 
      else
         Console.WriteLine("{0}\n{1}", name2, name1); 
   }
}
// The example displays the following output:
//       Sorted alphabetically by last name:
//       John Doe
//       Jack Smith

.NET Framework
2.0 から利用可能
Silverlight
2.0 から利用可能
Windows Phone Silverlight
7.0 から利用可能
トップに戻る
表示: