CaseInsensitiveComparer Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Compara dois objetos para equivalência, ignorando o caso das cadeias.
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
- Herança
-
CaseInsensitiveComparer
- Atributos
- Implementações
Exemplos
O exemplo de código seguinte cria uma tabela hash sensível a maiúsculas minúsculas e uma tabela hash insensível a maiúsculas minúsculas, demonstrando a diferença no seu comportamento, mesmo que ambas contenham os mesmos elementos.
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
Observações
CaseInsensitiveComparer implementa a IComparer interface que suporta comparações insensíveis a maiúsculas e maiúsculas em cadeias, tal como CaseInsensitiveHashCodeProvider implementa a IHashCodeProvider interface que suporta comparações insensíveis a maiúsculas e minúsculas em cadeias.
Importante
Não recomendamos que uses a CaseInsensitiveComparer disciplina para novos desenvolvimentos. Em vez disso, recomendamos que utilize o System.StringComparer objeto devolvido pela StringComparer.CurrentCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase, ou StringComparer.OrdinalIgnoreCase propriedade.
A Comparer classe é a implementação padrão da IComparer interface e realiza comparações de cadeias com sensibilidade a maiúsculas minúsculas.
Os objetos usados como chaves por a Hashtable são necessários para sobrepor o Object.GetHashCode método (ou a IHashCodeProvider interface) e o Object.Equals método (ou a IComparer interface). A implementação de ambos os métodos ou interfaces deve lidar com a sensibilidade a maiúsculas minúsculas da mesma forma; caso contrário, podem Hashtable comportar-se de forma incorreta. Por exemplo, ao criar um Hashtable, deve usar esta classe com a CaseInsensitiveHashCodeProvider classe ou qualquer implementação insensível IHashCodeProvider a maiúsculas e minúsculas.
As comparações de cordas podem ter resultados diferentes dependendo da cultura. Para mais informações sobre comparações específicas de culturas, consulte o System.Globalization namespace e Globalização e Localização.
Construtores
| Name | Description |
|---|---|
| CaseInsensitiveComparer() |
Inicializa uma nova instância da CaseInsensitiveComparer classe usando o CurrentCulture do thread atual. |
| CaseInsensitiveComparer(CultureInfo) |
Inicializa uma nova instância da CaseInsensitiveComparer classe usando o especificado CultureInfo. |
Propriedades
| Name | Description |
|---|---|
| Default |
Obtém uma instância de CaseInsensitiveComparer que está associada ao CurrentCulture do thread atual e que está sempre disponível. |
| DefaultInvariant |
Obtém uma instância de CaseInsensitiveComparer que está associada e InvariantCulture que está sempre disponível. |
Métodos
| Name | Description |
|---|---|
| Compare(Object, Object) |
Realiza uma comparação insensível a maiúsculas minúsculas de dois objetos do mesmo tipo e devolve um valor que indica se um é menor, igual ou maior que o outro. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |