Comparer.Compare(Object, Object) メソッド

定義

同じ型の 2 つのオブジェクトの大文字と小文字を区別して比較を実行し、1 つが他方より小さいか、等しいか、または大きいかを示す値を返します。

public:
 virtual int Compare(System::Object ^ a, System::Object ^ b);
public int Compare(object a, object b);
abstract member Compare : obj * obj -> int
override this.Compare : obj * obj -> int
Public Function Compare (a As Object, b As Object) As Integer

パラメーター

a
Object

比較する最初のオブジェクト。

b
Object

比較する 2 番目のオブジェクト。

返品

次の表に示すように、 abの相対値を示す符号付き整数。

価値 意味
0 未満 ab未満です。
ゼロ abと等しくなります。
0 より大きい ab より大きい。

実装

例外

abも、IComparable インターフェイスを実装しません。

-または-

ab は異なる型であり、どちらも他方との比較を処理できません。

次のコード例は、CompareComparerに関連付けられているカルチャに応じて異なる値を返す方法を示しています。

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

public class SamplesComparer  {

   public static void Main()  {

      // Creates the strings to compare.
      String str1 = "llegar";
      String str2 = "lugar";
      Console.WriteLine( "Comparing \"{0}\" and \"{1}\" ...", str1, str2 );

      // Uses the DefaultInvariant Comparer.
      Console.WriteLine( "   Invariant Comparer: {0}", Comparer.DefaultInvariant.Compare( str1, str2 ) );

      // Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
      Comparer myCompIntl = new Comparer( new CultureInfo( "es-ES", false ) );
      Console.WriteLine( "   International Sort: {0}", myCompIntl.Compare( str1, str2 ) );

      // Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
      Comparer myCompTrad = new Comparer( new CultureInfo( 0x040A, false ) );
      Console.WriteLine( "   Traditional Sort  : {0}", myCompTrad.Compare( str1, str2 ) );
   }
}

/*
This code produces the following output.

Comparing "llegar" and "lugar" ...
   Invariant Comparer: -1
   International Sort: -1
   Traditional Sort  : 1

*/
Imports System.Collections
Imports System.Globalization

Public Class SamplesComparer

   Public Shared Sub Main()

      ' Creates the strings to compare.
      Dim str1 As [String] = "llegar"
      Dim str2 As [String] = "lugar"
      Console.WriteLine("Comparing ""{0}"" and ""{1}"" ...", str1, str2)

      ' Uses the DefaultInvariant Comparer.
      Console.WriteLine("   Invariant Comparer: {0}", Comparer.DefaultInvariant.Compare(str1, str2))

      ' Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
      Dim myCompIntl As New Comparer(New CultureInfo("es-ES", False))
      Console.WriteLine("   International Sort: {0}", myCompIntl.Compare(str1, str2))

      ' Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
      Dim myCompTrad As New Comparer(New CultureInfo(&H40A, False))
      Console.WriteLine("   Traditional Sort  : {0}", myCompTrad.Compare(str1, str2))

   End Sub

End Class


'This code produces the following output.
'
'Comparing "llegar" and "lugar" ...
'   Invariant Comparer: -1
'   International Sort: -1
'   Traditional Sort  : 1

注釈

a IComparableを実装する場合は、aします。 CompareTo (b) が返されます。それ以外の場合、 bIComparableを実装する場合は、 bの否定結果になります。 CompareTo (a) が返されます。

nullを任意の型と比較することは許可されており、IComparableを使用する場合は例外は生成されません。 並べ替える場合、 null は他のどのオブジェクトよりも小さいと見なされます。

文字列比較の結果は、カルチャによって異なる場合があります。 カルチャ固有の比較の詳細については、 System.Globalization 名前空間と グローバリゼーションとローカライズに関するページを参照してください。

適用対象

こちらもご覧ください