次の方法で共有


Comparer コンストラクタ

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

System.Globalization.CultureInfo を指定して、 Comparer クラスの新しいインスタンスを初期化します。

Public Sub New( _
   ByVal culture As CultureInfo _)
[C#]
public Comparer(
   CultureInfoculture);
[C++]
public: Comparer(
   CultureInfo* culture);
[JScript]
public function Comparer(
   culture : CultureInfo);

パラメータ

例外

例外の種類 条件
ArgumentNullException culture が null 参照 (Visual Basic では Nothing) です。

解説

比較プロシージャは、並べ替え順序と大文字と小文字の規則を決定するために、指定した System.Globalization.CultureInfo を使用します。文字列比較の結果は、カルチャに応じて異なる場合があります。カルチャ固有の比較の詳細については、 System.Globalization 名前空間のトピックおよび「 国際対応アプリケーションの開発 」を参照してください。

使用例

[Visual Basic, C#, C++] Comparer に関連付けられているカルチャに応じて、 Compare が返す値が変わる方法については、次のコードの例を参照してください。

 
Imports System
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 'Main 

End Class 'SamplesComparer


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


[C#] 
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

*/

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Globalization;

int main()  {

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

    // Uses the DefaultInvariant Comparer.
    Console::WriteLine(S"   Invariant Comparer: {0}", __box(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(S"   International Sort: {0}", __box(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(S"   Traditional Sort  : {0}", __box(myCompTrad->Compare(str1, str2)));
}

/*
This code produces the following output.

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

*/

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

Comparer クラス | Comparer メンバ | System.Collections 名前空間 | System.Globalization.CultureInfo | System.Globalization.CompareInfo