Hashtable 클래스
이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Hashtable 클래스

 

키의 해시 코드에 따라 구성된 키/값 쌍의 컬렉션을 나타냅니다.

이 유형에 대 한.NET Framework 소스 코드를 찾아보려면 참조는 Reference Source합니다.

네임스페이스:   System.Collections
어셈블리:  mscorlib.dll의 mscorlib


[SerializableAttribute]
[ComVisibleAttribute(true)]
public class Hashtable : IDictionary, ICollection, IEnumerable, 
	ISerializable, IDeserializationCallback, ICloneable

이름설명
System_CAPS_pubmethodHashtable()

비어 있는 새 인스턴스를 초기화는 Hashtable 기본 초기 용량을 사용 하 여 클래스, 로드 비율, 해시 코드 공급자 및 비교자입니다.

System_CAPS_pubmethodHashtable(IDictionary)

새 인스턴스를 초기화는 Hashtable 지정된 된 사전에서 새 요소를 복사 하 여 클래스 Hashtable 개체입니다.Hashtable 개체는 복사 된 요소 수와 동일한 초기 용량을 갖고와 기본 로드 비율, 해시 코드 공급자 및 비교자를 사용 하 여 합니다.

System_CAPS_pubmethodHashtable(IDictionary, IEqualityComparer)

새 인스턴스를 초기화는 Hashtable 지정된 된 사전에서 새 요소를 복사 하 여 클래스 Hashtable 개체입니다.Hashtable 개체는 복사 된 요소 수와 동일한 초기 용량을 갖고와 기본 로드 비율 및 지정 된 사용 하 여 IEqualityComparer 개체입니다.

System_CAPS_pubmethodHashtable(IDictionary, IHashCodeProvider, IComparer)

사용되지 않습니다.새 인스턴스를 초기화는 Hashtable 지정된 된 사전에서 새 요소를 복사 하 여 클래스 Hashtable 개체입니다.Hashtable 개체는 복사 된 요소 수와 동일한 초기 용량을 갖고와 기본 로드 비율과 지정 된 해시 코드 공급자 및 비교자를 사용 하 여 합니다. 이 API는 더 이상 사용되지 않습니다. 다른 방법에 대 한 참조 Hashtable합니다.

System_CAPS_pubmethodHashtable(IDictionary, Single)

새 인스턴스를 초기화는 Hashtable 지정된 된 사전에서 새 요소를 복사 하 여 클래스 Hashtable 개체입니다.Hashtable 개체는 복사 된 요소 수와 동일한 초기 용량을 갖고 및 지정 된 로드 비율과 기본 해시 코드 공급자 및 비교자를 사용 하 여 합니다.

System_CAPS_pubmethodHashtable(IDictionary, Single, IEqualityComparer)

새 인스턴스를 초기화는 Hashtable 지정된 된 사전에서 새 요소를 복사 하 여 클래스 Hashtable 개체입니다.Hashtable 개체는 복사 된 요소 수와 동일한 초기 용량을 갖고 및 지정 된 로드 비율을 사용 하 고 IEqualityComparer 개체입니다.

System_CAPS_pubmethodHashtable(IDictionary, Single, IHashCodeProvider, IComparer)

사용되지 않습니다.새 인스턴스를 초기화는 Hashtable 지정된 된 사전에서 새 요소를 복사 하 여 클래스 Hashtable 개체입니다.Hashtable 개체는 복사 된 요소 수와 동일한 초기 용량을 갖고와 기본 로드 비율, 해시 코드 공급자 및 비교자를 사용 하 여 합니다.

System_CAPS_pubmethodHashtable(IEqualityComparer)

비어 있는 새 인스턴스를 초기화는 Hashtable 기본 초기 용량을 사용 하 여 클래스 및 로드 비율과 지정 된 IEqualityComparer 개체입니다.

System_CAPS_pubmethodHashtable(IHashCodeProvider, IComparer)

사용되지 않습니다.비어 있는 새 인스턴스를 초기화는 Hashtable 기본 초기 용량을 사용 하 여 클래스 및 로드 비율과 지정 된 해시 코드 공급자 및 비교자입니다.

System_CAPS_pubmethodHashtable(Int32)

비어 있는 새 인스턴스를 초기화는 Hashtable 지정된 된 초기 용량을 기본 로드 비율, 해시 코드 공급자 및 비교자를 사용 하 여 클래스입니다.

System_CAPS_pubmethodHashtable(Int32, IEqualityComparer)

비어 있는 새 인스턴스를 초기화는 Hashtable 지정된 된 초기 용량을 사용 하 여 클래스 및 IEqualityComparer, 및 기본 로드 비율입니다.

System_CAPS_pubmethodHashtable(Int32, IHashCodeProvider, IComparer)

사용되지 않습니다.비어 있는 새 인스턴스를 초기화는 Hashtable 지정된 된 초기 용량, 해시 코드 공급자, 비교자 및 기본 로드 비율을 사용 하 여 클래스입니다.

System_CAPS_pubmethodHashtable(Int32, Single)

비어 있는 새 인스턴스를 초기화는 Hashtable 지정된 된 초기 용량을 사용 하 여 클래스 및 로드 비율과 기본 해시 코드 공급자 및 비교자입니다.

System_CAPS_pubmethodHashtable(Int32, Single, IEqualityComparer)

비어 있는 새 인스턴스를 초기화는 Hashtable 지정 된 초기 용량, 로드 비율을 사용 하 여 클래스 및 IEqualityComparer 개체입니다.

System_CAPS_pubmethodHashtable(Int32, Single, IHashCodeProvider, IComparer)

사용되지 않습니다.비어 있는 새 인스턴스를 초기화는 Hashtable 지정된 된 초기 용량을 사용 하 여 클래스, 로드 비율, 해시 코드 공급자 및 비교자입니다.

System_CAPS_protmethodHashtable(SerializationInfo, StreamingContext)

비어 있는 새 인스턴스를 초기화는 Hashtable 클래스를 사용 하 여 지정 된 직렬화 가능 SerializationInfoStreamingContext 개체입니다.

이름설명
System_CAPS_protpropertycomparer

사용되지 않습니다.가져오거나는 IComparer 를 사용 하는 Hashtable합니다.

System_CAPS_pubpropertyCount

Hashtable에 포함된 키/값 쌍의 수를 가져옵니다.

System_CAPS_protpropertyEqualityComparer

가져옵니다는 IEqualityComparer 를 사용 하는 Hashtable합니다.

System_CAPS_protpropertyhcp

사용되지 않습니다.해시 코드를 분배할 수 있는 개체를 가져오거나 설정합니다.

System_CAPS_pubpropertyIsFixedSize

Hashtable의 크기가 고정되어 있는지를 나타내는 값을 가져옵니다.

System_CAPS_pubpropertyIsReadOnly

Hashtable가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.

System_CAPS_pubpropertyIsSynchronized

Hashtable에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지를 나타내는 값을 가져옵니다.

System_CAPS_pubpropertyItem[Object]

지정된 키에 연결된 값을 가져오거나 설정합니다.

System_CAPS_pubpropertyKeys

가져옵니다는 ICollection 키를 포함 하는 Hashtable합니다.

System_CAPS_pubpropertySyncRoot

Hashtable에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.

System_CAPS_pubpropertyValues

ICollection의 값이 들어 있는 Hashtable을 가져옵니다.

이름설명
System_CAPS_pubmethodAdd(Object, Object)

지정한 키와 값을 가지는 요소를 Hashtable에 추가합니다.

System_CAPS_pubmethodClear()

Hashtable에서 요소를 모두 제거합니다.

System_CAPS_pubmethodClone()

단순 복사본을 만듭니다는 Hashtable합니다.

System_CAPS_pubmethodContains(Object)

Hashtable에 특정 키가 들어 있는지 여부를 확인합니다.

System_CAPS_pubmethodContainsKey(Object)

Hashtable에 특정 키가 들어 있는지 여부를 확인합니다.

System_CAPS_pubmethodContainsValue(Object)

Hashtable에 특정 값이 들어 있는지 여부를 확인합니다.

System_CAPS_pubmethodCopyTo(Array, Int32)

복사본은 Hashtable 요소를 1 차원 Array 인스턴스의 지정한 인덱스에 있습니다.

System_CAPS_pubmethodEquals(Object)

지정한 개체가 현재 개체와 같은지 여부를 확인합니다. (Object에서 상속됨.)

System_CAPS_protmethodFinalize()

개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨.)

System_CAPS_pubmethodGetEnumerator()

반환 된 IDictionaryEnumerator 을 반복 하는 Hashtable합니다.

System_CAPS_protmethodGetHash(Object)

지정한 키의 해시 코드를 반환합니다.

System_CAPS_pubmethodGetHashCode()

기본 해시 함수로 작동합니다.(Object에서 상속됨.)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

구현 하는 ISerializable 인터페이스를 serialize 하는 데 필요한 데이터를 반환 된 Hashtable합니다.

System_CAPS_pubmethodGetType()

현재 인스턴스의 Type을 가져옵니다.(Object에서 상속됨.)

System_CAPS_protmethodKeyEquals(Object, Object)

특정 비교 Object 에 특정 키로는 Hashtable합니다.

System_CAPS_protmethodMemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.(Object에서 상속됨.)

System_CAPS_pubmethodOnDeserialization(Object)

ISerializable 인터페이스를 구현하고, deserialization이 완료되면 deserialization 이벤트를 발생시킵니다.

System_CAPS_pubmethodRemove(Object)

Hashtable에서 지정한 키를 가지는 요소를 제거합니다.

System_CAPS_pubmethodSystem_CAPS_staticSynchronized(Hashtable)

동기화 (스레드로부터 안전한 지) 래퍼를 반환 된 Hashtable합니다.

System_CAPS_pubmethodToString()

현재 개체를 나타내는 문자열을 반환합니다.(Object에서 상속됨.)

이름설명
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

컬렉션을 반복하는 열거자를 반환합니다.

이름설명
System_CAPS_pubmethodAsParallel()

오버로드되었습니다. 쿼리를 병렬화할 수 있도록 합니다.(ParallelEnumerable에 의해 정의됨)

System_CAPS_pubmethodAsQueryable()

오버로드되었습니다. 변환 된 IEnumerableIQueryable합니다.(Queryable에 의해 정의됨)

System_CAPS_pubmethodCast<TResult>()

요소에 캐스트는 IEnumerable 지정 된 형식입니다.(Enumerable에 의해 정의됨)

System_CAPS_pubmethodOfType<TResult>()

요소를 필터링 한 IEnumerable 지정된 된 형식에 기반 합니다.(Enumerable에 의해 정의됨)

System_CAPS_note참고

이 유형에 대 한.NET Framework 소스 코드를 보려면 참조는 Reference Source합니다. 온라인 소스 코드, 오프 라인으로 보기에 대 한 참조를 다운로드 및 디버깅 하는 동안 소스 (패치 및 업데이트 포함)를 단계별로 실행 합니다. see instructions.

각 요소는에 저장 된 키/값 쌍을 DictionaryEntry 개체입니다. 키 수 없습니다 null, 있지만 값이 될 수 있습니다.

키로 사용 되는 개체는 Hashtable 재정의 하는 데 필요한는 Object.GetHashCode 메서드 (또는 IHashCodeProvider 인터페이스) 및 Object.Equals 메서드 (또는 IComparer 인터페이스)입니다. 두 메서드 및 인터페이스의 구현을 대/소문자 구분; 같은 방식으로 처리 해야 합니다. 그렇지 않은 경우는 Hashtable 올바르게 작동할 수 있습니다. 예를 들어, 만들 때는 Hashtable, 를 사용 해야는 CaseInsensitiveHashCodeProvider 클래스 (모든 대/소문자 구분 또는 IHashCodeProvider 구현)와 CaseInsensitiveComparer 클래스 (모든 대/소문자 구분 또는 IComparer 구현).

또한 이러한 메서드는 키에 있는 동안 동일한 매개 변수를 사용 하 여 호출 될 때 동일한 결과 생성 해야 합니다는 Hashtable합니다. 대신 사용 하는 것을 Hashtable 생성자는 IEqualityComparer 매개 변수입니다. 키 일치가 단순히 참조 일치의 상속 된 구현 Object.GetHashCodeObject.Equals 충분 합니다.

키 개체 변경 하지 않아야에서 키로 사용 하는 만큼의 Hashtable합니다.

요소에 추가 된 경우는 Hashtable, 키의 해시 코드에 따라 버킷으로 요소가 배치 됩니다. 키의 후속 조회 키의 해시 코드 하 여 하나의 특정 버킷의 따라서 실질적으로 요소를 찾는 데 필요한 키 비교의 수를 줄일 수 있습니다.

로드 비율을 Hashtable 버킷과 요소의 최대 비율을 결정 합니다. 더 작은 부하 요인으로 인해 메모리 소모량이 증가 하면 더 빠르게 평균 조회 시간입니다. 일반적으로 1.0의 기본 로드 비율 적절 한 속도와 크기를 제공합니다. 다른 로드 비율 일 수도 있습니다 될 때 지정 되는 Hashtable 만들어집니다.

요소에 추가 되는 Hashtable, 의 실제 로드 비율은 Hashtable 증가 합니다. 실제 로드 비율이 지정된 된 로드 비율의 버킷 수에 도달 하면 때는 Hashtable 현재 배의 보다 크면 가장 작은 소수를 자동으로 증가 Hashtable 버킷입니다.

각 키 개체는 Hashtable 를 호출 하 여 액세스할 수 있는 자체 해시 함수를 제공 해야 GetHash합니다. 그러나 구현 하는 개체 IHashCodeProvider 에 전달할 수는 Hashtable 생성자, 그리고 테이블의 모든 개체에 대 한 해시 함수의 사용이 있습니다.

용량을 Hashtable 요소의 수가는 Hashtable 보유할 수 있습니다. 요소에 추가 되는 Hashtable, 용량을 증가 시켜 자동으로 다시 할당을 통해 필요에 따라 합니다.

에 대 한 매우 큰 Hashtable 개체를 설정 하 여 64 비트 시스템에서 2 억 요소에 최대 용량을 늘릴 수는 enabled 구성 요소의 특성 true 런타임 환경에서.

foreach C# 언어의 (For Each Visual basic에서) 컬렉션의 요소 형식의 개체를 반환 합니다. 이후의 각 요소는 Hashtable 는 키/값 쌍 이며 요소 형식이 키의 형식 또는 값의 형식입니다. 요소 형식은 만으로도 DictionaryEntry합니다. 예:

foreach(DictionaryEntry de in myHashtable)
{
    // ...
}

foreach 문은 한 래퍼만 컬렉션에 쓰는 것부터 읽기를 허용 하는 열거자입니다.

직렬화 및 역직렬화에 대 한 열거자 때문에 Hashtable 요소 순서가 변경 될를 하면, 호출 하지 않고 열거를 계속 진행할 수 없는 Reset 메서드.

System_CAPS_note참고

키를 상속 될 수 있으며의 동작을 변경할의 절대적인 고유성 보장할 수 없는 사용 하 여 비교 하 여 때문에 Equals 메서드.

다음 예제에서는 만들기, 초기화 및 다양 한 기능을 수행 하는 방법을 보여 줍니다.는 Hashtable 및 해당 키와 값을 출력 하는 방법입니다.

using System;
using System.Collections;

class Example
{
    public static void Main()
    {
        // Create a new hash table.
        //
        Hashtable openWith = new Hashtable();

        // Add some elements to the hash table. There are no 
        // duplicate keys, but some of the values are duplicates.
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("dib", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");

        // The Add method throws an exception if the new key is 
        // already in the hash table.
        try
        {
            openWith.Add("txt", "winword.exe");
        }
        catch
        {
            Console.WriteLine("An element with Key = \"txt\" already exists.");
        }

        // The Item property is the default property, so you 
        // can omit its name when accessing elements. 
        Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]);

        // The default Item property can be used to change the value
        // associated with a key.
        openWith["rtf"] = "winword.exe";
        Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]);

        // If a key does not exist, setting the default Item property
        // for that key adds a new key/value pair.
        openWith["doc"] = "winword.exe";

        // ContainsKey can be used to test keys before inserting 
        // them.
        if (!openWith.ContainsKey("ht"))
        {
            openWith.Add("ht", "hypertrm.exe");
            Console.WriteLine("Value added for key = \"ht\": {0}", openWith["ht"]);
        }

        // When you use foreach to enumerate hash table elements,
        // the elements are retrieved as KeyValuePair objects.
        Console.WriteLine();
        foreach( DictionaryEntry de in openWith )
        {
            Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
        }

        // To get the values alone, use the Values property.
        ICollection valueColl = openWith.Values;

        // The elements of the ValueCollection are strongly typed
        // with the type that was specified for hash table values.
        Console.WriteLine();
        foreach( string s in valueColl )
        {
            Console.WriteLine("Value = {0}", s);
        }

        // To get the keys alone, use the Keys property.
        ICollection keyColl = openWith.Keys;

        // The elements of the KeyCollection are strongly typed
        // with the type that was specified for hash table keys.
        Console.WriteLine();
        foreach( string s in keyColl )
        {
            Console.WriteLine("Key = {0}", s);
        }

        // Use the Remove method to remove a key/value pair.
        Console.WriteLine("\nRemove(\"doc\")");
        openWith.Remove("doc");

        if (!openWith.ContainsKey("doc"))
        {
            Console.WriteLine("Key \"doc\" is not found.");
        }
    }
}

/* This code example produces the following output:

An element with Key = "txt" already exists.
For key = "rtf", value = wordpad.exe.
For key = "rtf", value = winword.exe.
Value added for key = "ht": hypertrm.exe

Key = dib, Value = paint.exe
Key = txt, Value = notepad.exe
Key = ht, Value = hypertrm.exe
Key = bmp, Value = paint.exe
Key = rtf, Value = winword.exe
Key = doc, Value = winword.exe

Value = paint.exe
Value = notepad.exe
Value = hypertrm.exe
Value = paint.exe
Value = winword.exe
Value = winword.exe

Key = dib
Key = txt
Key = ht
Key = bmp
Key = rtf
Key = doc

Remove("doc")
Key "doc" is not found.
 */

Universal Windows Platform
10 이후에 사용 가능
.NET Framework
1.1 이후에 사용 가능

Hashtable 스레드로부터 안전 하 게 사용 하는 단일 쓰기 스레드 및 다중 판독기 스레드 합니다. 스레드로부터 안전있지 않습니다만 스레드 중 하나 (업데이트) 쓰기 작업을 수행할 때 다중 스레드 사용에 대 한 기록기에 serialize 되는 읽기 잠금 해제 허용 된 Hashtable합니다. 여러 작성기 모든 작업을 지원 하기는 Hashtable 에서 반환 되는 래퍼를 통해 이루어져야 합니다.는 Synchronized 메서드를 읽기는 스레드가 없는 제공 되는 Hashtable 개체입니다.

컬렉션 전체를 열거 없는 본질적으로 스레드로부터 안전한 프로시저가 있습니다. 컬렉션이 동기화되어 있을 때 다른 스레드에서 해당 컬렉션을 수정할 수 있으므로 이렇게 되면 열거자에서 예외가 throw됩니다. 열거하는 동안 스레드로부터 안전을 보장하려면 전체 열거를 수행하는 동안 컬렉션을 잠그거나 다른 스레드에서 변경된 내용으로 인해 발생한 예외를 catch하면 됩니다.

맨 위로 이동
표시:
© 2016 Microsoft