CaseInsensitiveComparer Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Jämför två objekt för ekvivalens och ignorerar fallet med strängar.
public ref class CaseInsensitiveComparer : System::Collections::IComparer
public class CaseInsensitiveComparer : System.Collections.IComparer
[System.Serializable]
public class CaseInsensitiveComparer : System.Collections.IComparer
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class CaseInsensitiveComparer : System.Collections.IComparer
type CaseInsensitiveComparer = class
interface IComparer
[<System.Serializable>]
type CaseInsensitiveComparer = class
interface IComparer
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CaseInsensitiveComparer = class
interface IComparer
Public Class CaseInsensitiveComparer
Implements IComparer
- Arv
-
CaseInsensitiveComparer
- Attribut
- Implementeringar
Exempel
I följande kodexempel skapas en skiftlägeskänslig hashtabell och en skiftlägeskänslig hashtabell och visar skillnaden i deras beteende, även om båda innehåller samma element.
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
*/
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
End Class
'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
Kommentarer
CaseInsensitiveComparerimplementerar gränssnittsstöd IComparer för skiftlägesokänsliga jämförelser på strängar, precis som implementerar IHashCodeProvider gränssnittet som CaseInsensitiveHashCodeProvider stöder skiftlägesokänsliga jämförelser på strängar.
Important
Vi rekommenderar inte att du använder CaseInsensitiveComparer klassen för ny utveckling. I stället rekommenderar vi att du använder objektet System.StringComparer som returneras av StringComparer.CurrentCultureIgnoreCaseegenskapen , StringComparer.InvariantCultureIgnoreCaseeller StringComparer.OrdinalIgnoreCase .
Klassen Comparer är standardimplementeringen av IComparer gränssnittet och utför skiftlägeskänsliga strängjämförelser.
De objekt som används som nycklar av en Hashtable krävs för att åsidosätta Object.GetHashCode metoden (eller IHashCodeProvider gränssnittet) och Object.Equals metoden (eller IComparer gränssnittet). Implementeringen av båda metoderna eller gränssnitten måste hantera skiftlägeskänslighet på samma sätt. annars kan det Hashtable bete sig felaktigt. När du till exempel skapar en Hashtablemåste du använda den CaseInsensitiveHashCodeProvider här klassen med klassen eller valfri skiftlägeskänslig IHashCodeProvider implementering.
Strängjämförelser kan ha olika resultat beroende på kulturen. Mer information om kulturspecifika jämförelser finns i System.Globalization namnområdet och Globalisering och lokalisering.
Konstruktorer
| Name | Description |
|---|---|
| CaseInsensitiveComparer() |
Initierar en ny instans av CaseInsensitiveComparer klassen med hjälp av den CurrentCulture aktuella tråden. |
| CaseInsensitiveComparer(CultureInfo) |
Initierar en ny instans av CaseInsensitiveComparer klassen med den angivna CultureInfo. |
Egenskaper
| Name | Description |
|---|---|
| Default |
Hämtar en instans av CaseInsensitiveComparer som är associerad med den CurrentCulture aktuella tråden och som alltid är tillgänglig. |
| DefaultInvariant |
Hämtar en instans av CaseInsensitiveComparer som är associerad med InvariantCulture och som alltid är tillgänglig. |
Metoder
| Name | Description |
|---|---|
| Compare(Object, Object) |
Utför en skiftlägeskänslig jämförelse av två objekt av samma typ och returnerar ett värde som anger om det ena är mindre än, lika med eller större än det andra. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |