CaseInsensitiveComparer Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vergelijkt twee objecten voor gelijkwaardigheid, waarbij het geval van tekenreeksen wordt genegeerd.
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
- Overname
-
CaseInsensitiveComparer
- Kenmerken
- Implementeringen
Voorbeelden
In het volgende codevoorbeeld wordt een hoofdlettergevoelige hashtabel en een niet-hoofdlettergevoelige hashtabel gemaakt en wordt het verschil in hun gedrag gedemonstreert, zelfs als beide dezelfde elementen bevatten.
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
Opmerkingen
CaseInsensitiveComparer implementeert de IComparer interface die hoofdlettergevoelige vergelijkingen op tekenreeksen ondersteunt, net zoals CaseInsensitiveHashCodeProvider de IHashCodeProvider interface die ondersteuning biedt voor niet-hoofdlettergevoelige vergelijkingen op tekenreeksen implementeert.
Important
We raden u niet aan om de CaseInsensitiveComparer klasse te gebruiken voor nieuwe ontwikkeling. In plaats daarvan raden we u aan het System.StringComparer object te gebruiken dat wordt geretourneerd door de StringComparer.CurrentCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCaseof StringComparer.OrdinalIgnoreCase eigenschap.
De Comparer klasse is de standaard implementatie van de IComparer interface en voert hoofdlettergevoelige tekenreeksvergelijkingen uit.
De objecten die door een sleutel Hashtable worden gebruikt, moeten de Object.GetHashCode methode (of de IHashCodeProvider interface) en de Object.Equals methode (of de IComparer interface) overschrijven. De implementatie van beide methoden of interfaces moet de gevoeligheid van hoofdletters op dezelfde manier verwerken; anders gedraagt het Hashtable zich mogelijk onjuist. Als u bijvoorbeeld een Hashtableklasse maakt, moet u deze klasse gebruiken met de CaseInsensitiveHashCodeProvider klasse of een niet-hoofdlettergevoelige IHashCodeProvider implementatie.
Tekenreeksvergelijkingen kunnen verschillende resultaten hebben, afhankelijk van de cultuur. Zie de System.Globalization naamruimte en globalisatie en lokalisatie voor meer informatie over cultuurspecifieke vergelijkingen.
Constructors
| Name | Description |
|---|---|
| CaseInsensitiveComparer() |
Initialiseert een nieuw exemplaar van de CaseInsensitiveComparer klasse met behulp van de CurrentCulture huidige thread. |
| CaseInsensitiveComparer(CultureInfo) |
Initialiseert een nieuw exemplaar van de CaseInsensitiveComparer klasse met behulp van de opgegeven CultureInfo. |
Eigenschappen
| Name | Description |
|---|---|
| Default |
Hiermee wordt een exemplaar opgehaald CaseInsensitiveComparer dat is gekoppeld aan de CurrentCulture huidige thread en die altijd beschikbaar is. |
| DefaultInvariant |
Hiermee wordt een exemplaar van CaseInsensitiveComparer die gekoppeld InvariantCulture en die altijd beschikbaar is. |
Methoden
| Name | Description |
|---|---|
| Compare(Object, Object) |
Hiermee wordt een niet-hoofdlettergevoelige vergelijking van twee objecten van hetzelfde type uitgevoerd en wordt een waarde geretourneerd die aangeeft of een object kleiner is dan, gelijk is aan of groter is dan de andere. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |