CollectionsUtil 클래스

정의

문자열의 대/소문자를 무시하는 컬렉션을 만듭니다.Creates collections that ignore the case in strings.

public ref class CollectionsUtil
public class CollectionsUtil
type CollectionsUtil = class
Public Class CollectionsUtil
상속
CollectionsUtil

예제

다음 예제에서는 도시 그룹에 대 한 인구 값을 저장 해시 테이블과 정렬 된 목록을 두 개의 컬렉션을 사용 합니다.The following example uses two collections, a hash table and a sorted list, to hold population values for a group of cities. 값은 도시 이름을 키로 사용 하 여 컬렉션에서 검색 됩니다.The values are retrieved from the collections by using the city names as keys. 도시 이름은 대/소문자가 사용 하 여 대/소문자 키로 표시에 있습니다.The city names are in mixed case to show their use as case-insensitive keys.

#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:" + vbNewLine)
        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(vbNewLine + "Case insensitive sorted list results:" + vbNewLine)
        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

설명

이러한 메서드는 대/소문자 구현의 해시 코드 공급자와 비교자를 사용 하 여 컬렉션의 대/소문자 인스턴스를 생성 합니다.These methods generate a case-insensitive instance of the collection using case-insensitive implementations of the hash code provider and the comparer. 다르게 동작할 수 있습니다 하지만 결과 인스턴스를 해당 클래스의 모든 다른 인스턴스와 마찬가지로 사용할 수 있습니다.The resulting instance can be used like any other instances of that class, although it may behave differently.

예를 들어, "hello" 키를 사용 하 여 두 개체를 가정 되며 "HELLO" 해시 테이블을 추가할 수 있습니다.For example, suppose two objects with the keys "hello" and "HELLO" are to be added to a hash table. 두 개의 다른 항목; 대/소문자 구분 해시 테이블을 만듭니다. 반면, 대/소문자 해시 테이블을 두 번째 개체를 추가 하는 경우 예외가 throw 됩니다.A case-sensitive hash table would create two different entries; whereas, a case-insensitive hash table would throw an exception when adding the second object.

생성자

CollectionsUtil()

CollectionsUtil 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the CollectionsUtil class.

메서드

CreateCaseInsensitiveHashtable()

기본 초기 용량을 갖는 Hashtable 클래스의 대/소문자를 구분하지 않는 새 인스턴스를 만듭니다.Creates a new case-insensitive instance of the Hashtable class with the default initial capacity.

CreateCaseInsensitiveHashtable(IDictionary)

지정된 사전의 항목을 복사된 항목의 수와 초기 용량이 같은 Hashtable 클래스의 대/소문자를 구분하지 않는 새 인스턴스로 복사합니다.Copies the entries from the specified dictionary to a new case-insensitive instance of the Hashtable class with the same initial capacity as the number of entries copied.

CreateCaseInsensitiveHashtable(Int32)

초기 용량이 지정된 Hashtable 클래스의 대/소문자를 구분하지 않는 새 인스턴스를 만듭니다.Creates a new case-insensitive instance of the Hashtable class with the specified initial capacity.

CreateCaseInsensitiveSortedList()

문자열의 대/소문자를 구분하지 않는 SortedList 클래스의 새 인스턴스를 만듭니다.Creates a new instance of the SortedList class that ignores the case of strings.

Equals(Object)

지정한 개체가 현재 개체와 같은지를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

적용 대상

스레드 보안

Hashtable는 한 작성기와 여러 판독기를 동시에 지원할 수 있습니다.A Hashtable can support one writer and multiple readers concurrently. 여러 작성기를 지원 하려면 Synchronized(Hashtable) 메서드에서 반환 하는 래퍼를 통해 모든 작업을 수행 해야 합니다.To support multiple writers, all operations must be done through the wrapper returned by the Synchronized(Hashtable) method.

SortedList 지원할 수 있습니다 여러 판독기 동시에 따라 컬렉션을 수정 되지 않습니다.A SortedList can support multiple readers concurrently, as long as the collection is not modified. SortedList의 스레드 안전을 보장 하려면 Synchronized(SortedList) 메서드에서 반환 하는 래퍼를 통해 모든 작업을 수행 해야 합니다.To guarantee the thread safety of the SortedList, all operations must be done through the wrapper returned by the Synchronized(SortedList) method.

컬렉션을 열거 되지 본질적으로 스레드로부터 안전한 프로시저가 있습니다.Enumerating through a collection is intrinsically not a thread safe procedure. 컬렉션이 동기화되어 있을 때 다른 스레드에서 해당 컬렉션을 수정할 수 있으므로 이렇게 되면 열거자에서 예외가 throw됩니다.Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. 열거하는 동안 스레드로부터 안전을 보장하려면 전체 열거를 수행하는 동안 컬렉션을 잠그거나 다른 스레드에서 변경된 내용으로 인해 발생한 예외를 catch하면 됩니다.To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

추가 정보