CollectionsUtil Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt Auflistungen, die die Groß-und Kleinschreibung in Zeichenfolgen ignoriert.
public ref class CollectionsUtil
public class CollectionsUtil
type CollectionsUtil = class
Public Class CollectionsUtil
- Vererbung
-
CollectionsUtil
Beispiele
Im folgenden Beispiel werden zwei Sammlungen verwendet, eine Hashtabelle und eine sortierte Liste, um Einwohnerwerte für eine Gruppe von Städten zu enthalten. Die Werte werden aus den Sammlungen abgerufen, indem die Stadtnamen als Schlüssel verwendet werden. Die Stadtnamen werden in gemischter Groß- und Kleinschreibung verwendet, um ihre Verwendung als Schlüssel ohne Beachtung der Groß-/Kleinschreibung anzuzeigen.
#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
Hinweise
Diese Methoden generieren eine instance der Auflistung ohne Beachtung der Groß-/Kleinschreibung mithilfe von Implementierungen des Hashcodeanbieters und des Vergleichs. Die resultierende instance kann wie alle anderen Instanzen dieser Klasse verwendet werden, kann sich jedoch unterschiedlich verhalten.
Angenommen, zwei Objekte mit den Schlüsseln "hello" und "HELLO" sollen einer Hashtabelle hinzugefügt werden. Eine Hashtabelle, bei der die Groß-/Kleinschreibung beachtet wird, würde zwei unterschiedliche Einträge erstellen. während eine Hashtabelle ohne Beachtung der Groß-/Kleinschreibung beim Hinzufügen des zweiten Objekts eine Ausnahme auslöst.
Konstruktoren
CollectionsUtil() |
Initialisiert eine neue Instanz der CollectionsUtil-Klasse. |
Methoden
CreateCaseInsensitiveHashtable() |
Erstellt eine neue, die Groß- und Kleinschreibung nicht berücksichtigende Instanz der Hashtable-Klasse mit der anfänglichen Standardkapazität. |
CreateCaseInsensitiveHashtable(IDictionary) |
Kopiert die Einträge aus dem angegebenen Wörterbuch in eine neue, die Groß- und Kleinschreibung nicht berücksichtigende Instanz der Hashtable-Klasse mit einer Anfangskapazität, die der Anzahl der kopierten Einträge entspricht. |
CreateCaseInsensitiveHashtable(Int32) |
Erstellt eine neue, die Groß- und Kleinschreibung nicht berücksichtigende Instanz der Hashtable-Klasse mit der angegebenen Anfangskapazität. |
CreateCaseInsensitiveSortedList() |
Erstellt eine neue Instanz der SortedList-Klasse, die die Groß- und Kleinschreibung von Zeichenfolgen nicht berücksichtigt. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Gilt für:
Threadsicherheit
Ein Hashtable kann einen Writer und mehrere Reader gleichzeitig unterstützen. Um mehrere Writer zu unterstützen, müssen alle Vorgänge über den von der Synchronized(Hashtable) -Methode zurückgegebenen Wrapper ausgeführt werden.
Ein SortedList kann mehrere Reader gleichzeitig unterstützen, solange die Sammlung nicht geändert wird. Um die Threadsicherheit des SortedListzu gewährleisten, müssen alle Vorgänge über den von der Synchronized(SortedList) -Methode zurückgegebenen Wrapper ausgeführt werden.
Das Aufzählen durch eine Auflistung ist grundsätzlich keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, besteht die Möglichkeit, dass andere Threads sie ändern. Dies führt dazu, dass der Enumerator eine Ausnahme auslöst. Um während der Enumeration Threadsicherheit zu gewährleisten, können Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen, die aus von anderen Threads stammenden Änderungen resultieren, abfangen.