CollectionsUtil Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří kolekce, které ignorují velikost písmen v řetězcích.
public ref class CollectionsUtil
public class CollectionsUtil
type CollectionsUtil = class
Public Class CollectionsUtil
- Dědičnost
-
CollectionsUtil
Příklady
Následující příklad používá dvě kolekce, zatřiďovací tabulku a seřazený seznam, které obsahují hodnoty počtu obyvatel pro skupinu měst. Hodnoty se načítají z kolekcí pomocí názvů měst jako klíčů. Názvy měst jsou ve smíšených velikostech písmen, aby se zobrazovaly jako klíče bez rozlišování velkých a malých písmen.
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
ref 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();
for each (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"]);
}
};
int main()
{
TestCollectionsUtils::Main();
}
// 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
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
Poznámky
Tyto metody generují instanci kolekce bez rozlišování malých a velkých písmen pomocí implementací poskytovatele kódu hash a porovnávače, které nerozlišují malá a velká písmena. Výslednou instanci lze použít stejně jako jakékoli jiné instance této třídy, i když se může chovat odlišně.
Předpokládejme například, že se do hashovací tabulky mají přidat dva objekty s klíči "hello" a "HELLO". Tabulka hash rozlišující malá a velká písmena by vytvořila dvě různé položky; zatímco tabulka hash nerozlišující malá a velká písmena by při přidání druhého objektu vyvolala výjimku.
Konstruktory
CollectionsUtil() |
Inicializuje novou instanci CollectionsUtil třídy . |
Metody
CreateCaseInsensitiveHashtable() |
Vytvoří novou instanci Hashtable třídy bez rozlišování velkých a malých písmen s výchozí počáteční kapacitou. |
CreateCaseInsensitiveHashtable(IDictionary) |
Zkopíruje položky ze zadaného slovníku do nové instance Hashtable třídy, která nerozlišuje malá a velká písmena, se stejnou počáteční kapacitou jako počet zkopírovaných položek. |
CreateCaseInsensitiveHashtable(Int32) |
Vytvoří novou instanci Hashtable třídy bez rozlišování velkých a malých písmen se zadanou počáteční kapacitou. |
CreateCaseInsensitiveSortedList() |
Vytvoří novou instanci SortedList třídy , která ignoruje velikost písmen řetězců. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Platí pro
Bezpečný přístup z více vláken
Může Hashtable podporovat jednoho spisovatele a více čtenářů současně. Aby bylo možné podporovat více zapisovačů, musí být všechny operace provedeny prostřednictvím obálky vrácené metodou Synchronized(Hashtable) .
Objekt SortedList může podporovat více čtenářů současně, pokud se kolekce nezmění. Aby byla zajištěna bezpečnost SortedListvlákna , musí být všechny operace prováděny prostřednictvím obálky vrácené metodou Synchronized(SortedList) .
Vytvoření výčtu prostřednictvím kolekce není vnitřně procedurou bezpečnou pro přístup z více vláken. I v případě, že jde o synchronizovanou kolekci, mohou úpravy provádět i ostatní vlákna, což způsobuje vyvolání výjimky enumerátorem. K zaručení bezpečnosti přístupu z více vláken můžete buďto zamknout kolekci na celou dobu práce s výčtem, nebo zachycovat výjimky vzniklé v důsledku změn prováděných ostatními vlákny.