情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

String.CompareOrdinal メソッド (String, Int32, String, Int32, Int32)

2013/12/12

それぞれの部分文字列の対応する Char オブジェクトの数値を評価することで、指定した 2 つの String を比較します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public static int CompareOrdinal(
	string strA,
	int indexA,
	string strB,
	int indexB,
	int length
)

パラメーター

strA
型: System.String
比較で使用する最初の文字列。
indexA
型: System.Int32
strA 内の部分文字列の開始インデックス。
strB
型: System.String
比較で使用する 2 番目の文字列。
indexB
型: System.Int32
strB 内の部分文字列の開始インデックス。
length
型: System.Int32
比較する各部分文字列の最大文字数。

戻り値

型: System.Int32
2 つの比較対照値の構文上の関係を示す 32 ビット符号付き整数。

条件

ゼロより小

strA 内の部分文字列が、strB 内の部分文字列より小さいです。

ゼロ

これらの部分文字列が等しいか、または length が 0 です。

ゼロより大

strA 内の部分文字列が strB 内の部分文字列より大きいです。

例外条件
ArgumentOutOfRangeException

strAnull でなく、indexAstrA.Length より大きい。

または

strBnull でなく、indexBstrB.Length より大きい。

または

indexAindexB、または length が負の値です。

indexAindexB、および length の各パラメーターが負数以外である必要があります。

比較される文字数は、strA から indexA を引いた長さ、strB から indexB を引いた長さ、および length のうちで一番小さい値になります。

このメソッドは、序数の並べ替え規則を使用して大文字と小文字を区別する比較を実行します。単語、文字列、序数の並べ替えの詳細については、「System.Globalization.CompareOptions」を参照してください。

CompareOrdinal は静的メソッドであるので、strA および strBnull でもかまいません。両方の値が null の場合、メソッドは 0 (ゼロ) を返します。これは、strAstrB が等しいことを示します。一方の値のみ null である場合、メソッドでは null 以外の値の方が大きいと見なします。

CompareOrdinalCompare が異なる並べ替え順序を使用することを、次のコード例に示します。


using System;
using System.Globalization;

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      String strLow = "abc";
      String strCap = "ABC";
      String result = "equal to ";
      int x = 0;
      int pos = 1;

      // The Unicode codepoint for 'b' is greater than the codepoint for 'B'.
      x = String.CompareOrdinal(strLow, pos, strCap, pos, 1);
      if (x < 0) result = "less than";
      if (x > 0) result = "greater than";
      outputBlock.Text += String.Format("CompareOrdinal(\"{0}\"[{2}], \"{1}\"[{2}]):", strLow, strCap, pos) + "\n";
      outputBlock.Text += String.Format("   '{0}' is {1} '{2}'", strLow[pos], result, strCap[pos]) + "\n";

      // In U.S. English culture, 'b' is linguistically less than 'B'.
      x = String.Compare(strLow, pos, strCap, pos, 1, new CultureInfo("en-US"), CompareOptions.None);
      if (x < 0) result = "less than";
      else if (x > 0) result = "greater than";
      outputBlock.Text += String.Format("Compare(\"{0}\"[{2}], \"{1}\"[{2}]):", strLow, strCap, pos) + "\n";
      outputBlock.Text += String.Format("   '{0}' is {1} '{2}'", strLow[pos], result, strCap[pos]) + "\n";
   }
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: