CaseInsensitiveComparer クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > CaseInsensitiveComparer クラスの意味・解説 

CaseInsensitiveComparer クラス

2 つオブジェクト等しかどうか比較します。比較時には文字列大文字と小文字区別されません。

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

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class CaseInsensitiveComparer
    Implements IComparer
Dim instance As CaseInsensitiveComparer
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class CaseInsensitiveComparer : IComparer
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class CaseInsensitiveComparer :
 IComparer
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class CaseInsensitiveComparer implements
 IComparer
SerializableAttribute 
ComVisibleAttribute(true) 
public class CaseInsensitiveComparer implements
 IComparer
解説解説

CaseInsensitiveComparer は、文字列大文字と小文字区別しない比較サポートする IComparer インターフェイス実装しています。同様に、CaseInsensitiveHashCodeProvider は、文字列大文字と小文字区別しない比較サポートする IHashCodeProvider インターフェイス実装しています。

Comparer クラスIComparer インターフェイス既定実装で、大文字と小文字区別する文字列比較実行します

Hashtableキーとして使用されるオブジェクトは、Object.GetHashCode メソッド (または IHashCodeProvider インターフェイス) およびObject.Equals メソッド (または IComparer インターフェイス) を実装または継承している必要がありますメソッドまたはインターフェイスのどちらの実装でも、大文字と小文字区別を同じ方法処理する必要がありますそのように実装されていないと、Hashtable正しく動作しない場合あります。たとえば、Hashtable作成するとき、このクラスは、CaseInsensitiveHashCodeProvider クラス大文字と小文字区別しない IHashCodeProvider 実装と共に使用する必要があります

文字列比較結果は、カルチャに応じて異な場合あります。カルチャ固有の比較詳細については、System.Globalization 名前空間トピックおよび「エンコーディングローカリゼーション」を参照してください

使用例使用例

次に示すのは、大文字と小文字区別するハッシュ テーブルと、大文字と小文字区別しないハッシュ テーブル作成するコード例です。それぞれのハッシュ テーブル含まれている要素が同じでも、両者動作異なることがわかります

Imports System
Imports System.Collections
Imports System.Globalization

Public Class SamplesHashtable

   Public Shared Sub Main()

      ' Create a Hashtable using the default hash code provider and
 the default comparer.
      Dim myHT1 As New Hashtable()
      myHT1.Add("FIRST", "Hello")
      myHT1.Add("SECOND", "World")
      myHT1.Add("THIRD", "!")

      ' Create a Hashtable using a case-insensitive code provider and
 a case-insensitive comparer,
      ' based on the culture of the current thread.
      Dim myHT2 As New Hashtable(New
 CaseInsensitiveHashCodeProvider(), New CaseInsensitiveComparer())
      myHT2.Add("FIRST", "Hello")
      myHT2.Add("SECOND", "World")
      myHT2.Add("THIRD", "!")

      ' Create a Hashtable using a case-insensitive code provider and
 a case-insensitive comparer,
      ' based on the InvariantCulture.
      Dim myHT3 As New Hashtable(CaseInsensitiveHashCodeProvider.DefaultInvariant,
 CaseInsensitiveComparer.DefaultInvariant)
      myHT3.Add("FIRST", "Hello")
      myHT3.Add("SECOND", "World")
      myHT3.Add("THIRD", "!")

      ' Create a Hashtable using a case-insensitive code provider and
 a case-insensitive comparer,
      ' based on the Turkish culture (tr-TR), where "I" is
 not the uppercase version of "i".
      Dim myCul As New CultureInfo("tr-TR")
      Dim myHT4 As New Hashtable(New
 CaseInsensitiveHashCodeProvider(myCul), New CaseInsensitiveComparer(myCul))
      myHT4.Add("FIRST", "Hello")
      myHT4.Add("SECOND", "World")
      myHT4.Add("THIRD", "!")

      ' Search for a key in each hashtable.
      Console.WriteLine("first is in myHT1: {0}",
 myHT1.ContainsKey("first"))
      Console.WriteLine("first is in myHT2: {0}",
 myHT2.ContainsKey("first"))
      Console.WriteLine("first is in myHT3: {0}",
 myHT3.ContainsKey("first"))
      Console.WriteLine("first is in myHT4: {0}",
 myHT4.ContainsKey("first"))

   End Sub 'Main 

End Class 'SamplesHashtable


'This code produces the following output.  Results vary depending on
 the system's culture settings.
'
'first is in myHT1: False
'first is in myHT2: True
'first is in myHT3: True
'first is in myHT4: False

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

public class SamplesHashtable  {

   public static void Main()
  {

      // Create a Hashtable using the default hash code provider and
 the default comparer.
      Hashtable myHT1 = new Hashtable();
      myHT1.Add("FIRST", "Hello");
      myHT1.Add("SECOND", "World");
      myHT1.Add("THIRD", "!");

      // Create a Hashtable using a case-insensitive code provider and
 a case-insensitive comparer,
      // based on the culture of the current thread.
      Hashtable myHT2 = new Hashtable( new
 CaseInsensitiveHashCodeProvider(), new CaseInsensitiveComparer()
 );
      myHT2.Add("FIRST", "Hello");
      myHT2.Add("SECOND", "World");
      myHT2.Add("THIRD", "!");

      // Create a Hashtable using a case-insensitive code provider and
 a case-insensitive comparer,
      // based on the InvariantCulture.
      Hashtable myHT3 = new Hashtable( CaseInsensitiveHashCodeProvider.DefaultInvariant,
 CaseInsensitiveComparer.DefaultInvariant );
      myHT3.Add("FIRST", "Hello");
      myHT3.Add("SECOND", "World");
      myHT3.Add("THIRD", "!");

      // Create a Hashtable using a case-insensitive code provider and
 a case-insensitive comparer,
      // based on the Turkish culture (tr-TR), where "I" is
 not the uppercase version of "i".
      CultureInfo myCul = new CultureInfo( "tr-TR" );
      Hashtable myHT4 = new Hashtable( new
 CaseInsensitiveHashCodeProvider( myCul ), new CaseInsensitiveComparer(
 myCul ) );
      myHT4.Add("FIRST", "Hello");
      myHT4.Add("SECOND", "World");
      myHT4.Add("THIRD", "!");

      // Search for a key in each hashtable.
      Console.WriteLine( "first is in myHT1: {0}", myHT1.ContainsKey(
 "first" ) );
      Console.WriteLine( "first is in myHT2: {0}", myHT2.ContainsKey(
 "first" ) );
      Console.WriteLine( "first is in myHT3: {0}", myHT3.ContainsKey(
 "first" ) );
      Console.WriteLine( "first is in myHT4: {0}", myHT4.ContainsKey(
 "first" ) );

   }

}


/* 
This code produces the following output.  Results vary depending on the system's
 culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: True
first is in myHT4: False

*/

using namespace System;
using namespace System::Collections;
using namespace System::Globalization;
int main()
{
   
   // Create a Hashtable using the default hash code provider and the
 default comparer.
   Hashtable^ myHT1 = gcnew Hashtable;
   myHT1->Add( "FIRST", "Hello" );
   myHT1->Add( "SECOND", "World" );
   myHT1->Add( "THIRD", "!" );
   
   // Create a Hashtable using a case-insensitive code provider and
 a case-insensitive comparer,
   // based on the culture of the current thread.
   Hashtable^ myHT2 = gcnew Hashtable( gcnew CaseInsensitiveHashCodeProvider,gcnew
 CaseInsensitiveComparer );
   myHT2->Add( "FIRST", "Hello" );
   myHT2->Add( "SECOND", "World" );
   myHT2->Add( "THIRD", "!" );
   
   // Create a Hashtable using a case-insensitive code provider and
 a case-insensitive comparer,
   // based on the InvariantCulture.
   Hashtable^ myHT3 = gcnew Hashtable( CaseInsensitiveHashCodeProvider::DefaultInvariant,CaseInsensitiveComparer::DefaultInvariant
 );
   myHT3->Add( "FIRST", "Hello" );
   myHT3->Add( "SECOND", "World" );
   myHT3->Add( "THIRD", "!" );
   
   // Create a Hashtable using a case-insensitive code provider and
 a case-insensitive comparer,
   // based on the Turkish culture (tr-TR), where "I" is not
 the uppercase version of "i".
   CultureInfo^ myCul = gcnew CultureInfo( "tr-TR" );
   Hashtable^ myHT4 = gcnew Hashtable( gcnew CaseInsensitiveHashCodeProvider( myCul
 ),gcnew CaseInsensitiveComparer( myCul ) );
   myHT4->Add( "FIRST", "Hello" );
   myHT4->Add( "SECOND", "World" );
   myHT4->Add( "THIRD", "!" );
   
   // Search for a key in each hashtable.
   Console::WriteLine( "first is in myHT1: {0}", myHT1->ContainsKey(
 "first" ) );
   Console::WriteLine( "first is in myHT2: {0}", myHT2->ContainsKey(
 "first" ) );
   Console::WriteLine( "first is in myHT3: {0}", myHT3->ContainsKey(
 "first" ) );
   Console::WriteLine( "first is in myHT4: {0}", myHT4->ContainsKey(
 "first" ) );
}

/* 
This code produces the following output.  Results vary depending on the system's
 culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: True
first is in myHT4: False

*/
import System.*;
import System.Collections.*;
import System.Globalization.*;

public class SamplesHashtable
{
    public static void main(String[]
 args)
    {
        // Create a Hashtable using the default hash code provider and
 the
        // default comparer.
        Hashtable myHT1 = new Hashtable();
        myHT1.Add("FIRST", "Hello");
        myHT1.Add("SECOND", "World");
        myHT1.Add("THIRD", "!");
          
        // Create a Hashtable using a case-insensitive code provider
 and a 
        // case-insensitive comparer, based on the culture of the 
        // current thread.
        Hashtable myHT2 = new Hashtable(new
 CaseInsensitiveHashCodeProvider(),
            new CaseInsensitiveComparer());
        myHT2.Add("FIRST", "Hello");
        myHT2.Add("SECOND", "World");
        myHT2.Add("THIRD", "!");
          
        // Create a Hashtable using a case-insensitive code provider
 and 
        // a case-insensitive comparer, based on the InvariantCulture.
        Hashtable myHT3 =  
            new Hashtable(CaseInsensitiveHashCodeProvider.get_DefaultInvariant()
,
            CaseInsensitiveComparer.get_DefaultInvariant());
        myHT3.Add("FIRST", "Hello");
        myHT3.Add("SECOND", "World");
        myHT3.Add("THIRD", "!");
          
        // Create a Hashtable using a case-insensitive code provider
 and a 
        // case-insensitive comparer, based on the Turkish culture (tr-TR),
 
        // where "I" is not the uppercase version of "i".
        CultureInfo myCul =  new CultureInfo("tr-TR");
        Hashtable myHT4 =  
            new Hashtable(new CaseInsensitiveHashCodeProvider(myCul),
 
            new CaseInsensitiveComparer(myCul));
        myHT4.Add("FIRST", "Hello");
        myHT4.Add("SECOND", "World");
        myHT4.Add("THIRD", "!");
          
        // Search for a key in each hashtable.
        Console.WriteLine("first is in myHT1: {0}",
 
            (System.Boolean)myHT1.ContainsKey("first"));
        Console.WriteLine("first is in myHT2: {0}",
 
            (System.Boolean)myHT2.ContainsKey("first"));
        Console.WriteLine("first is in myHT3: {0}",
 
            (System.Boolean)myHT3.ContainsKey("first"));
        Console.WriteLine("first is in myHT4: {0}",
 
            (System.Boolean)myHT4.ContainsKey("first"));
    } //main
} //SamplesHashtable

/* 
This code produces the following output.  Results vary depending on the system's
 
culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: True
first is in myHT4: False

*/
継承階層継承階層
System.Object
  System.Collections.CaseInsensitiveComparer
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CaseInsensitiveComparer メンバ
System.Collections 名前空間
IComparer
IComparable インターフェイス
Comparer
System.Globalization.CompareInfo
Thread.CurrentCulture
System.Globalization.CultureInfo
CaseInsensitiveHashCodeProvider
その他の技術情報
カルチャを認識しないコレクション操作実行



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「CaseInsensitiveComparer クラス」の関連用語

CaseInsensitiveComparer クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CaseInsensitiveComparer クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS