CollectionsUtil 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.
Cria coleções que ignoram o caso em strings.
public ref class CollectionsUtil
public class CollectionsUtil
type CollectionsUtil = class
Public Class CollectionsUtil
- Herança
-
CollectionsUtil
Exemplos
O exemplo seguinte utiliza duas coleções, uma tabela hash e uma lista ordenada, para armazenar os valores populacionais de um grupo de cidades. Os valores são recuperados das coleções usando os nomes das cidades como chaves. Os nomes das cidades estão em maiúsculas mistas para mostrar o seu uso como chaves insensíveis a maiúsculas e minúsculas.
using System;
using System.Collections;
using System.Collections.Specialized;
class TestCollectionsUtils
{
public static void Main()
{
Hashtable population1 = CollectionsUtil.CreateCaseInsensitiveHashtable();
population1["Trapperville"] = 15;
population1["Doggerton"] = 230;
population1["New Hollow"] = 1234;
population1["McHenry"] = 185;
// Select cities from the table using mixed case.
Console.WriteLine("Case insensitive hashtable results:\n");
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population1["trapperville"]);
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population1["DOGGERTON"]);
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population1["New hoLLow"]);
Console.WriteLine("{0}'s population is: {1}", "McHenry", population1["MchenrY"]);
SortedList population2 = CollectionsUtil.CreateCaseInsensitiveSortedList();
foreach (string city in population1.Keys)
{
population2.Add(city, population1[city]);
}
// Select cities from the sorted list using mixed case.
Console.WriteLine("\nCase insensitive sorted list results:\n");
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population2["trapPeRVille"]);
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population2["dOGGeRtON"]);
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population2["nEW hOLLOW"]);
Console.WriteLine("{0}'s population is: {1}", "McHenry", population2["MchEnrY"]);
}
}
// This program displays the following output to the console
//
// Case insensitive hashtable results:
//
// Trapperville's population is: 15
// Doggerton's population is: 230
// New Hollow's population is: 1234
// McHenry's population is: 185
//
// Case insensitive sorted list results:
//
// Trapperville's population is: 15
// Doggerton's population is: 230
// New Hollow's population is: 1234
// McHenry's population is: 185
Imports System.Collections
Imports System.Collections.Specialized
Class TestCollectionsUtils
Public Shared Sub Main()
Dim population1 As Hashtable = CollectionsUtil.CreateCaseInsensitiveHashtable()
population1("Trapperville") = 15
population1("Doggerton") = 230
population1("New Hollow") = 1234
population1("McHenry") = 185
' Select cities from the table using mixed case.
Console.WriteLine("Case insensitive hashtable results:" + Environment.NewLine)
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population1("trapperville"))
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population1("DOGGERTON"))
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population1("New hoLLow"))
Console.WriteLine("{0}'s population is: {1}", "McHenry", population1("MchenrY"))
Dim population2 As SortedList = CollectionsUtil.CreateCaseInsensitiveSortedList()
For Each city As String In population1.Keys
population2.Add(city, population1(city))
Next city
' Select cities from the sorted list using mixed case.
Console.WriteLine(Environment.NewLine + "Case insensitive sorted list results:" + Environment.NewLine)
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population2("trapPeRVille"))
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population2("dOGGeRtON"))
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population2("nEW hOLLOW"))
Console.WriteLine("{0}'s population is: {1}", "McHenry", population2("MchEnrY"))
End Sub
End Class
' This program displays the following output to the console
'
' Case insensitive hashtable results:
'
' Trapperville's population is: 15
' Doggerton's population is: 230
' New Hollow's population is: 1234
' McHenry's population is: 185
'
' Case insensitive sorted list results:
'
' Trapperville's population is: 15
' Doggerton's population is: 230
' New Hollow's population is: 1234
' McHenry's population is: 185
Observações
Estes métodos geram uma instância insensível a maiúsculas minúsculas da coleção usando implementações insensíveis a maiúsculas e minúsculas do fornecedor de código hash e do comparador. A instância resultante pode ser usada como qualquer outra instância dessa classe, embora possa comportar-se de forma diferente.
Por exemplo, suponha que dois objetos com as teclas "hello" e "hello" são adicionados a uma tabela hash. Uma tabela hash sensível a maiúsculas minúsculas criaria duas entradas diferentes; enquanto que uma tabela hash insensível a maiúsculas e minúsculas lançaria uma exceção ao adicionar o segundo objeto.
Construtores
| Name | Description |
|---|---|
| CollectionsUtil() |
Inicializa uma nova instância da CollectionsUtil classe. |
Métodos
| Name | Description |
|---|---|
| CreateCaseInsensitiveHashtable() |
Cria uma nova instância insensível a maiúsculas e minúsculas da Hashtable classe com a capacidade inicial padrão. |
| CreateCaseInsensitiveHashtable(IDictionary) |
Copia as entradas do dicionário especificado para uma nova instância insensível a maiúsculas minúsculas da Hashtable classe, com a mesma capacidade inicial do número de entradas copiadas. |
| CreateCaseInsensitiveHashtable(Int32) |
Cria uma nova instância insensível a maiúsculas minúsculas da Hashtable classe com a capacidade inicial especificada. |
| CreateCaseInsensitiveSortedList() |
Cria uma nova instância da SortedList classe que ignora o caso das cadeias. |
| 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) |
Aplica-se a
Segurança de Thread
A Hashtable pode apoiar um escritor e vários leitores em simultâneo. Para suportar múltiplos escritores, todas as operações devem ser feitas através do wrapper devolvido pelo Synchronized(Hashtable) método.
A SortedList pode suportar múltiplos leitores em simultâneo, desde que a coleção não seja modificada. Para garantir a segurança da thread do SortedList, todas as operações devem ser feitas através do invólucro devolvido pelo Synchronized(SortedList) método.
Enumerar através de uma coleção não é intrinsecamente um procedimento seguro para threads. Mesmo quando uma coleção está sincronizada, outros threads ainda podem modificar a coleção, o que faz com que o enumerador lance uma exceção. Para garantir a segurança dos threads durante a enumeração, pode bloquear a coleção durante toda a enumeração ou apanhar as exceções resultantes de alterações feitas por outros threads.