CollectionsUtil Klasse

Definition

Erstellt Auflistungen, die den Fall in Zeichenfolgen ignorieren.

public ref class CollectionsUtil
public class CollectionsUtil
type CollectionsUtil = class
Public Class CollectionsUtil
Vererbung
CollectionsUtil

Beispiele

Im folgenden Beispiel werden zwei Auflistungen, eine Hashtabelle und eine sortierte Liste verwendet, um Die Grundbestandswerte für eine Gruppe von Städten zu enthalten. Die Werte werden aus den Auflistungen mithilfe der Stadtnamen als Schlüssel abgerufen. Die Ortsnamen sind in gemischter Groß-/Kleinschreibung enthalten, um deren Verwendung bei Nicht-Groß-/Kleinschreibung zu zeigen.

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 Instanz ohne Groß-/Kleinschreibung der Auflistung mithilfe von Implementierungen des Hashcodeanbieters und des Vergleichs. Die resultierende Instanz kann wie jede andere Instanz dieser Klasse verwendet werden, obwohl sie sich möglicherweise anders verhält.

Angenommen, zwei Objekte mit den Schlüsseln "hello" und "HELLO" sollen einer Hashtabelle hinzugefügt werden. Bei einer Hashtabelle mit Groß-/Kleinschreibung würden zwei verschiedene Einträge erstellt; in der Erwägung, dass bei einer Hashtabelle ohne Groß-/Kleinschreibung beim Hinzufügen des zweiten Objekts eine Ausnahme ausgelöst würde.

Konstruktoren

Name Beschreibung
CollectionsUtil()

Initialisiert eine neue Instanz der CollectionsUtil-Klasse.

Methoden

Name Beschreibung
CreateCaseInsensitiveHashtable()

Erstellt eine neue Instanz ohne Groß-/Kleinschreibung der Hashtable Klasse mit der Standard-Anfangskapazität.

CreateCaseInsensitiveHashtable(IDictionary)

Kopiert die Einträge aus dem angegebenen Wörterbuch in eine neue Instanz ohne Groß-/Kleinschreibung der Hashtable Klasse mit der gleichen Anfangskapazität wie die Anzahl der kopierten Einträge.

CreateCaseInsensitiveHashtable(Int32)

Erstellt eine neue Instanz ohne Groß-/Kleinschreibung der Hashtable Klasse mit der angegebenen Anfangskapazität.

CreateCaseInsensitiveSortedList()

Erstellt eine neue Instanz der SortedList Klasse, die die Groß-/Kleinschreibung von Zeichenfolgen ignoriert.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der 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 Autor und mehrere Leser können gleichzeitig unterstützt werden. Um mehrere Autoren zu unterstützen, müssen alle Vorgänge über den von der Synchronized(Hashtable) Methode zurückgegebenen Wrapper ausgeführt werden.

Eine SortedList kann mehrere Leser gleichzeitig unterstützen, solange die Sammlung nicht geändert wird. Um die Threadsicherheit des Threads SortedListzu gewährleisten, müssen alle Vorgänge über den wrapper erfolgen, der von der Synchronized(SortedList) Methode zurückgegeben wird.

Das Aufzählen durch eine Sammlung ist in der Regel keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, können andere Threads die Auflistung weiterhin ändern, wodurch der Enumerator eine Ausnahme auslöst. Um die Threadsicherheit während der Enumeration zu gewährleisten, können Sie die Auflistung entweder während der gesamten Enumeration sperren oder die Ausnahmen erfassen, die sich aus Änderungen ergeben, die von anderen Threads vorgenommen wurden.

Weitere Informationen