Hashtable Kelas

Definisi

Mewakili koleksi pasangan kunci/ nilai yang diatur berdasarkan kode hash kunci.

public ref class Hashtable : System::Collections::IDictionary
public ref class Hashtable : ICloneable, System::Collections::IDictionary, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public class Hashtable : System.Collections.IDictionary
public class Hashtable : ICloneable, System.Collections.IDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class Hashtable : ICloneable, System.Collections.IDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Hashtable : ICloneable, System.Collections.IDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type Hashtable = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
type Hashtable = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICloneable
    interface IDeserializationCallback
    interface ISerializable
type Hashtable = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ISerializable
    interface IDeserializationCallback
    interface ICloneable
[<System.Serializable>]
type Hashtable = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ISerializable
    interface IDeserializationCallback
    interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Hashtable = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ISerializable
    interface IDeserializationCallback
    interface ICloneable
Public Class Hashtable
Implements IDictionary
Public Class Hashtable
Implements ICloneable, IDeserializationCallback, IDictionary, ISerializable
Warisan
Hashtable
Turunan
Atribut
Penerapan

Contoh

Contoh berikut menunjukkan cara membuat, menginisialisasi, dan melakukan berbagai fungsi ke Hashtable dan cara mencetak kunci dan nilainya.

using namespace System;
using namespace System::Collections;

public ref class Example
{
public:
    static void Main()
    {
        // Create a new hash table.
        //
        Hashtable^ openWith = gcnew 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();
        for each( 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();
        for each( 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();
        for each( 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.");
        }
    }
};

int main()
{
    Example::Main();
}

/* 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.
 */
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.
 */
Imports System.Collections

Module Example

    Sub Main()

        ' Create a new hash table.
        '
        Dim openWith As 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.")
        End Try

        ' 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 Not openWith.ContainsKey("ht") Then
            openWith.Add("ht", "hypertrm.exe")
            Console.WriteLine("Value added for key = ""ht"": {0}", _
                openWith("ht"))
        End If

        ' When you use foreach to enumerate hash table elements,
        ' the elements are retrieved as KeyValuePair objects.
        Console.WriteLine()
        For Each de As DictionaryEntry In openWith
            Console.WriteLine("Key = {0}, Value = {1}", _
                de.Key, de.Value)
        Next de

        ' To get the values alone, use the Values property.
        Dim valueColl As ICollection = openWith.Values

        ' The elements of the ValueCollection are strongly typed
        ' with the type that was specified for hash table values.
        Console.WriteLine()
        For Each s As String In valueColl
            Console.WriteLine("Value = {0}", s)
        Next s

        ' To get the keys alone, use the Keys property.
        Dim keyColl As ICollection = openWith.Keys

        ' The elements of the KeyCollection are strongly typed
        ' with the type that was specified for hash table keys.
        Console.WriteLine()
        For Each s As String In keyColl
            Console.WriteLine("Key = {0}", s)
        Next s

        ' Use the Remove method to remove a key/value pair.
        Console.WriteLine(vbLf + "Remove(""doc"")")
        openWith.Remove("doc")

        If Not openWith.ContainsKey("doc") Then
            Console.WriteLine("Key ""doc"" is not found.")
        End If

    End Sub

End Module

' 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.
# Create new hash table using PowerShell syntax
$OpenWith = @{}

# Add one element to the hash table using the Add method
$OpenWith.Add('txt', 'notepad.exe')

# Add three eleements using PowerShell syntax three different ways
$OpenWith.dib = 'paint.exe'

$KeyBMP = 'bmp'
$OpenWith[$KeyBMP] = 'paint.exe'

$OpenWith += @{'rtf' = 'wordpad.exe'}

# Display hash table
"There are {0} in the `$OpenWith hash table as follows:" -f $OpenWith.Count
''

# Display hashtable properties
'Count of items in the hashtable  : {0}' -f $OpenWith.Count
'Is hashtable fixed size?         : {0}' -f $OpenWith.IsFixedSize
'Is hashtable read-only?          : {0}' -f $OpenWith.IsReadonly
'Is hashtabale synchronised?      : {0}' -f $OpenWith.IsSynchronized
''
'Keys in hashtable:'
$OpenWith.Keys
''
'Values in hashtable:'
$OpenWith.Values
''

<#
This script produces the following output:

There are 4 in the $OpenWith hash table as follows:

Name                           Value                                                                            
----                           -----                                                                            
txt                            notepad.exe                                                                      
dib                            paint.exe                                                                        
bmp                            paint.exe                                                                        
rtf                            wordpad.exe                                                                      

Count of items in the hashtable  : 4
Is hashtable fixed size?         : False
Is hashtable read-only?          : False
Is hashtabale synchronised?      : False

Keys in hashtable:
txt
dib
bmp
rtf

Values in hashtable:
notepad.exe
paint.exe
paint.exe
wordpad.exe
#>

Keterangan

Setiap elemen adalah pasangan kunci/nilai yang DictionaryEntry disimpan dalam objek . Kunci tidak boleh null, tetapi nilainya bisa.

Penting

Kami tidak menyarankan Anda menggunakan Hashtable kelas untuk pengembangan baru. Sebagai gantinya, kami sarankan Anda menggunakan kelas generik Dictionary<TKey,TValue> . Untuk informasi selengkapnya, lihat Koleksi non-generik tidak boleh digunakan di GitHub.

Objek yang digunakan sebagai kunci oleh diperlukan Hashtable untuk mengambil Object.GetHashCode alih metode (atau IHashCodeProvider antarmuka) dan Object.Equals metode (atau IComparer antarmuka). Implementasi metode dan antarmuka harus menangani sensitivitas kasus dengan cara yang sama; jika tidak, Hashtable mungkin bertingkah salah. Misalnya, saat membuat Hashtable, Anda harus menggunakan CaseInsensitiveHashCodeProvider kelas (atau implementasi yang tidak peka huruf besar/kecil IHashCodeProvider ) dengan CaseInsensitiveComparer kelas (atau implementasi yang tidak peka huruf besar/kecil IComparer ).

Selain itu, metode ini harus menghasilkan hasil yang sama ketika dipanggil dengan parameter yang sama sementara kunci ada di Hashtable. Alternatifnya adalah menggunakan Hashtable konstruktor dengan IEqualityComparer parameter . Jika kesetaraan kunci hanyalah kesetaraan referensi, implementasi Object.GetHashCode yang diwariskan dan Object.Equals sudah cukup.

Objek kunci harus tidak dapat diubah selama digunakan sebagai kunci di Hashtable.

Ketika elemen ditambahkan ke Hashtable, elemen ditempatkan ke dalam wadah berdasarkan kode hash kunci. Pencarian kunci berikutnya menggunakan kode hash kunci untuk mencari hanya dalam satu wadah tertentu, sehingga secara substansial mengurangi jumlah perbandingan kunci yang diperlukan untuk menemukan elemen.

Faktor beban menentukan Hashtable rasio maksimum elemen terhadap wadah. Faktor beban yang lebih kecil menyebabkan waktu pencarian rata-rata yang lebih cepat dengan biaya peningkatan konsumsi memori. Faktor beban default 1.0 umumnya memberikan keseimbangan terbaik antara kecepatan dan ukuran. Faktor beban yang berbeda juga dapat ditentukan saat Hashtable dibuat.

Karena elemen ditambahkan ke Hashtable, faktor beban aktual dari Hashtable peningkatan. Ketika faktor beban aktual mencapai faktor beban yang ditentukan, jumlah wadah dalam Hashtable secara otomatis ditingkatkan ke angka utama terkecil yang lebih besar dari dua kali jumlah Hashtable wadah saat ini.

Setiap objek kunci dalam Hashtable harus menyediakan fungsi hash sendiri, yang dapat diakses dengan memanggil GetHash. Namun, setiap penerapan IHashCodeProvider objek dapat diteruskan ke Hashtable konstruktor, dan fungsi hash tersebut digunakan untuk semua objek dalam tabel.

Kapasitas a Hashtable adalah jumlah elemen yang dapat ditahan Hashtable . Karena elemen ditambahkan ke Hashtable, kapasitas secara otomatis ditingkatkan sesuai kebutuhan melalui realokasi.

hanya .NET Framework: Untuk objek yang sangat besarHashtable, Anda dapat meningkatkan kapasitas maksimum menjadi 2 miliar elemen pada sistem 64-bit dengan mengatur enabled atribut <gcAllowVeryLargeObjects> elemen konfigurasi ke true di lingkungan run-time.

Pernyataan foreach bahasa C# (For Each dalam Visual Basic) mengembalikan objek dari jenis elemen dalam koleksi. Karena setiap elemen Hashtable adalah pasangan kunci/nilai, jenis elemen bukan jenis kunci atau jenis nilai. Sebaliknya, jenis elemennya adalah DictionaryEntry. Contohnya:

for each(DictionaryEntry de in myHashtable)
{
    // ...
}
foreach(DictionaryEntry de in myHashtable)
{
    // ...
}
For Each de As DictionaryEntry In myHashtable
    ' ...
Next de

Pernyataan tersebut foreach adalah pembungkus di sekitar enumerator, yang hanya memungkinkan membaca dari, tidak menulis ke, koleksi.

Karena menserialisasikan dan mendeserialisasi enumerator untuk dapat Hashtable menyebabkan elemen disusun ulang, tidak mungkin untuk melanjutkan enumerasi tanpa memanggil Reset metode .

Catatan

Karena kunci dapat diwariskan dan perilakunya berubah, keunikan mutlaknya tidak dapat dijamin oleh perbandingan menggunakan metode .Equals

Konstruktor

Hashtable()

Menginisialisasi instans Hashtable kelas baru yang kosong menggunakan kapasitas awal default, faktor beban, penyedia kode hash, dan pembanding.

Hashtable(IDictionary)

Menginisialisasi instans Hashtable baru kelas dengan menyalin elemen dari kamus yang ditentukan ke objek baru Hashtable . Objek baru Hashtable memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin, dan menggunakan faktor beban default, penyedia kode hash, dan pembanding.

Hashtable(IDictionary, IEqualityComparer)

Menginisialisasi instans Hashtable baru kelas dengan menyalin elemen dari kamus yang ditentukan ke objek baru Hashtable . Objek baru Hashtable memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin, dan menggunakan faktor beban default dan objek yang ditentukan IEqualityComparer .

Hashtable(IDictionary, IHashCodeProvider, IComparer)
Kedaluwarsa.
Kedaluwarsa.

Menginisialisasi instans Hashtable baru kelas dengan menyalin elemen dari kamus yang ditentukan ke objek baru Hashtable . Objek baru Hashtable memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin, dan menggunakan faktor beban default, serta penyedia dan pembanding kode hash yang ditentukan. API ini kedaluarsa. Untuk alternatif, lihat Hashtable(IDictionary, IEqualityComparer).

Hashtable(IDictionary, Single)

Menginisialisasi instans Hashtable baru kelas dengan menyalin elemen dari kamus yang ditentukan ke objek baru Hashtable . Objek baru Hashtable memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin, dan menggunakan faktor beban yang ditentukan, serta penyedia dan pembanding kode hash default.

Hashtable(IDictionary, Single, IEqualityComparer)

Menginisialisasi instans Hashtable baru kelas dengan menyalin elemen dari kamus yang ditentukan ke objek baru Hashtable . Objek baru Hashtable memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin, dan menggunakan faktor beban dan IEqualityComparer objek yang ditentukan.

Hashtable(IDictionary, Single, IHashCodeProvider, IComparer)
Kedaluwarsa.
Kedaluwarsa.

Menginisialisasi instans Hashtable baru kelas dengan menyalin elemen dari kamus yang ditentukan ke objek baru Hashtable . Objek baru Hashtable memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin, dan menggunakan faktor beban, penyedia kode hash, dan comparer yang ditentukan.

Hashtable(IEqualityComparer)

Menginisialisasi instans baru yang kosong dari Hashtable kelas menggunakan kapasitas awal default dan faktor beban, dan objek yang ditentukan IEqualityComparer .

Hashtable(IHashCodeProvider, IComparer)
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.

Menginisialisasi instans baru yang kosong dari Hashtable kelas menggunakan kapasitas awal default dan faktor beban, serta penyedia dan pembanding kode hash yang ditentukan.

Hashtable(Int32)

Menginisialisasi instans baru yang kosong dari Hashtable kelas menggunakan kapasitas awal yang ditentukan, dan faktor beban default, penyedia kode hash, dan pembanding.

Hashtable(Int32, IEqualityComparer)

Menginisialisasi instans baru yang kosong dari Hashtable kelas menggunakan kapasitas awal yang ditentukan dan IEqualityComparer, dan faktor beban default.

Hashtable(Int32, IHashCodeProvider, IComparer)
Kedaluwarsa.
Kedaluwarsa.

Menginisialisasi instans Hashtable kelas baru yang kosong menggunakan kapasitas awal yang ditentukan, penyedia kode hash, pembanding, dan faktor beban default.

Hashtable(Int32, Single)

Menginisialisasi instans baru yang kosong dari Hashtable kelas menggunakan kapasitas awal dan faktor beban yang ditentukan, serta penyedia dan pembanding kode hash default.

Hashtable(Int32, Single, IEqualityComparer)

Menginisialisasi instans baru yang kosong dari Hashtable kelas menggunakan kapasitas awal, faktor beban, dan IEqualityComparer objek yang ditentukan.

Hashtable(Int32, Single, IHashCodeProvider, IComparer)
Kedaluwarsa.
Kedaluwarsa.

Menginisialisasi instans baru yang kosong dari Hashtable kelas menggunakan kapasitas awal, faktor beban, penyedia kode hash, dan pembanding yang ditentukan.

Hashtable(SerializationInfo, StreamingContext)
Kedaluwarsa.

Menginisialisasi instans baru yang kosong dari Hashtable kelas yang dapat diserialisasikan menggunakan objek dan StreamingContext yang ditentukanSerializationInfo.

Properti

comparer
Kedaluwarsa.
Kedaluwarsa.

Mendapatkan atau mengatur IComparer untuk digunakan untuk Hashtable.

Count

Mendapatkan jumlah pasangan kunci/nilai yang terkandung dalam Hashtable.

EqualityComparer

IEqualityComparer Mendapatkan untuk digunakan untuk Hashtable.

hcp
Kedaluwarsa.
Kedaluwarsa.

Mendapatkan atau mengatur objek yang dapat membuang kode hash.

IsFixedSize

Mendapatkan nilai yang menunjukkan apakah Hashtable memiliki ukuran tetap.

IsReadOnly

Mendapatkan nilai yang menunjukkan apakah Hashtable bersifat baca-saja.

IsSynchronized

Mendapatkan nilai yang menunjukkan apakah akses ke disinkronkan Hashtable (utas aman).

Item[Object]

Mendapatkan atau mengatur nilai yang terkait dengan kunci yang ditentukan.

Keys

Mendapatkan yang ICollection berisi kunci di Hashtable.

SyncRoot

Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke Hashtable.

Values

Mendapatkan yang ICollection berisi nilai dalam Hashtable.

Metode

Add(Object, Object)

Menambahkan elemen dengan kunci dan nilai yang ditentukan ke Hashtabledalam .

Clear()

Menghapus semua elemen dari Hashtable.

Clone()

Membuat salinan dangkal dari Hashtable.

Contains(Object)

Menentukan apakah Hashtable berisi kunci tertentu.

ContainsKey(Object)

Menentukan apakah Hashtable berisi kunci tertentu.

ContainsValue(Object)

Menentukan apakah Hashtable berisi nilai tertentu.

CopyTo(Array, Int32)

Hashtable Menyalin elemen ke instans satu dimensi Array pada indeks yang ditentukan.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetEnumerator()

Mengembalikan IDictionaryEnumerator yang berulang melalui Hashtable.

GetHash(Object)

Mengembalikan kode hash untuk kunci yang ditentukan.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetObjectData(SerializationInfo, StreamingContext)
Kedaluwarsa.

ISerializable Mengimplementasikan antarmuka dan mengembalikan data yang diperlukan untuk menserialisasikan Hashtable.

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
KeyEquals(Object, Object)

Membandingkan spesifik Object dengan kunci tertentu di Hashtable.

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnDeserialization(Object)

ISerializable Mengimplementasikan antarmuka dan meningkatkan peristiwa deserialisasi saat deserialisasi selesai.

Remove(Object)

Menghapus elemen dengan kunci yang ditentukan dari Hashtable.

Synchronized(Hashtable)

Mengembalikan pembungkus yang disinkronkan (aman utas) untuk Hashtable.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

IEnumerable.GetEnumerator()

Mengembalikan enumerator yang berulang melalui koleksi.

Metode Ekstensi

Cast<TResult>(IEnumerable)

Mentransmisikan elemen dari ke IEnumerable jenis yang ditentukan.

OfType<TResult>(IEnumerable)

Memfilter elemen berdasarkan IEnumerable jenis yang ditentukan.

AsParallel(IEnumerable)

Mengaktifkan paralelisasi kueri.

AsQueryable(IEnumerable)

Mengonversi menjadi IEnumerableIQueryable.

Berlaku untuk

Keamanan Thread

Hashtable aman untuk digunakan oleh beberapa utas pembaca dan satu utas penulisan. Ini aman untuk penggunaan multi-utas ketika hanya salah satu utas yang melakukan operasi tulis (perbarui), yang memungkinkan pembacaan bebas kunci asalkan penulis diserialisasikan ke Hashtable. Untuk mendukung beberapa penulis, semua operasi pada Hashtable harus dilakukan melalui pembungkus yang dikembalikan oleh Synchronized(Hashtable) metode , asalkan tidak ada utas yang membaca Hashtable objek .

Menghitung melalui koleksi secara intrinsik bukan prosedur aman utas. Bahkan ketika koleksi disinkronkan, utas lain masih dapat memodifikasi koleksi, yang menyebabkan enumerator melemparkan pengecualian. Untuk menjamin keamanan utas selama enumerasi, Anda dapat mengunci koleksi selama seluruh enumerasi atau menangkap pengecualian yang dihasilkan dari perubahan yang dibuat oleh utas lain.

Lihat juga