CaseInsensitiveComparer Class
Compares two objects for equivalence, ignoring the case of strings.
Namespace: System.Collections
Assembly: mscorlib (in mscorlib.dll)
The CaseInsensitiveComparer type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() | CaseInsensitiveComparer() | Initializes a new instance of the CaseInsensitiveComparer class using the Thread::CurrentCulture of the current thread. |
![]() ![]() | CaseInsensitiveComparer(CultureInfo) | Initializes a new instance of the CaseInsensitiveComparer class using the specified System.Globalization::CultureInfo. |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | Default | Gets an instance of CaseInsensitiveComparer that is associated with the Thread::CurrentCulture of the current thread and that is always available. |
![]() ![]() ![]() | DefaultInvariant | Gets an instance of CaseInsensitiveComparer that is associated with CultureInfo::InvariantCulture and that is always available. |
| Name | Description | |
|---|---|---|
![]() ![]() | Compare | Performs a case-insensitive comparison of two objects of the same type and returns a value indicating whether one is less than, equal to, or greater than the other. |
![]() ![]() | Equals(Object) | Determines whether the specified object is equal to the current object. (Inherited from Object.) |
![]() ![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() ![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() ![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() ![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() ![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
CaseInsensitiveComparer implements the IComparer interface supporting case-insensitive comparisons on strings, just as CaseInsensitiveHashCodeProvider implements the IHashCodeProvider interface supporting case-insensitive comparisons on strings.
The Comparer class is the default implementation of the IComparer interface and performs case-sensitive string comparisons.
The objects used as keys by a Hashtable are required to override the Object::GetHashCode method (or the IHashCodeProvider interface) and the Object::Equals method (or the IComparer interface). The implementation of both methods or interfaces must handle case sensitivity the same way; otherwise, the Hashtable might behave incorrectly. For example, when creating a Hashtable, you must use this class with the CaseInsensitiveHashCodeProvider class or any case-insensitive IHashCodeProvider implementation.
String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the System.Globalization namespace and Globalizing and Localizing .NET Framework Applications.
The following code example creates a case-sensitive hash table and a case-insensitive hash table and demonstrates the difference in their behavior, even if both contain the same elements.
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 */
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
.gif?cs-save-lang=1&cs-lang=cpp)
.gif?cs-save-lang=1&cs-lang=cpp)
.gif?cs-save-lang=1&cs-lang=cpp)
.gif?cs-save-lang=1&cs-lang=cpp)
.gif?cs-save-lang=1&cs-lang=cpp)