CollectionsUtil Klass

Definition

Skapar samlingar som ignorerar skiftläget i strängar.

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

Exempel

I följande exempel används två samlingar, en hashtabell och en sorterad lista, för att lagra befolkningsvärden för en grupp städer. Värdena hämtas från samlingarna med hjälp av ortnamnen som nycklar. Ortnamnen är i blandade fall för att visa deras användning som skiftlägesokänsliga nycklar.

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

Kommentarer

Dessa metoder genererar en skiftlägeskänslig instans av samlingen med hjälp av skiftlägesokänsliga implementeringar av hash-kodprovidern och jämförelsen. Den resulterande instansen kan användas som andra instanser av den klassen, även om den kan bete sig annorlunda.

Anta till exempel att två objekt med nycklarna "hello" och "HELLO" ska läggas till i en hash-tabell. En skiftlägeskänslig hashtabell skulle skapa två olika poster. Medan en skiftlägeskänslig hashtabell skulle utlösa ett undantag när det andra objektet läggs till.

Konstruktorer

Name Description
CollectionsUtil()

Initierar en ny instans av CollectionsUtil klassen.

Metoder

Name Description
CreateCaseInsensitiveHashtable()

Skapar en ny skiftlägeskänslig instans av Hashtable klassen med standardinitierad kapacitet.

CreateCaseInsensitiveHashtable(IDictionary)

Kopierar posterna från den angivna ordlistan till en ny skiftlägeskänslig instans av Hashtable klassen med samma initiala kapacitet som antalet kopierade poster.

CreateCaseInsensitiveHashtable(Int32)

Skapar en ny skiftlägeskänslig instans av Hashtable klassen med den angivna initiala kapaciteten.

CreateCaseInsensitiveSortedList()

Skapar en ny instans av SortedList klassen som ignorerar fallet med strängar.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Trådsäkerhet

En Hashtable kan ha stöd för en skrivare och flera läsare samtidigt. För att stödja flera skrivare måste alla åtgärder utföras via omslutningen som returneras av Synchronized(Hashtable) metoden.

En SortedList kan ha stöd för flera läsare samtidigt, så länge samlingen inte ändras. För att garantera trådsäkerheten för SortedListmåste alla åtgärder utföras via omslutningen som returneras av Synchronized(SortedList) metoden.

Att räkna upp genom en samling är i sig inte en trådsäker procedur. Även när en samling synkroniseras kan andra trådar fortfarande ändra samlingen, vilket gör att uppräknaren genererar ett undantag. För att garantera trådsäkerheten under uppräkningen kan du antingen låsa samlingen under hela uppräkningen eller fånga undantagen från ändringar som gjorts av andra trådar.

Se även