當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# HybridDictionary用法及代碼示例


HybridDictionary嘗試優化哈希表。它實現了鏈表和哈希表數據結構。當集合較小時,它通過使用 ListDictionary 來實現 IDictionary,當集合較大時,它使用 Hashtable。

HybridDictionary 類的屬性:

  • 對於字典中元素數量未知的情況,建議使用此類。
  • 它利用了改進的性能ListDictionary具有小型集合,並提供切換到哈希表它比 ListDictionary 更好地處理更大的集合。
  • 如果集合的初始大小大於 ListDictionary 的最佳大小,則集合將存儲在哈希表中,以避免將元素從 ListDictionary 複製到哈希表的開銷。
  • 鍵不能為空,但值可以。

Constructors

構造函數 說明
HybridDictionary() 創建一個空的區分大小寫的 HybridDictionary。
HybridDictionary(Boolean) 創建一個具有指定大小寫敏感性的空HybridDictionary。
混合字典(Int32) 創建具有指定初始大小的區分大小寫的HybridDictionary。
混合字典(Int32,布爾值) 創建具有指定初始大小和區分大小寫的HybridDictionary。

例子:


// C# code to create a HybridDictionary 
// with the specified initial size 
// and case sensitivity. 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating a HybridDictionary with the 
        // specified initial size and case sensitivity. 
        HybridDictionary myDict = new HybridDictionary(10, false); 
  
        // Adding key/value pairs in myDict 
        myDict.Add("I", "first"); 
  
        // This will not raise exception as the 
        // Collection is not case-insensitive 
        myDict.Add("i", "first"); 
        myDict.Add("II", "second"); 
        myDict.Add("III", "third"); 
        myDict.Add("IV", "fourth"); 
        myDict.Add("V", "fifth"); 
  
        // Displaying the key/value pairs in myDict 
        foreach(DictionaryEntry de in myDict) 
            Console.WriteLine(de.Key + " " + de.Value); 
    } 
} 
輸出:
III third
V fifth
II second
i first
I first
IV fourth

Properties

屬性 說明
Count 獲取 HybridDictionary 中包含的鍵/值對的數量。
IsFixedSize 獲取一個值,該值指示 HybridDictionary 是否具有固定大小。
IsReadOnly 獲取一個值,該值指示HybridDictionary是否為隻讀。
IsSynchronized 獲取一個值,該值指示 HybridDictionary 是否已同步(線程安全)。
項目[對象] 獲取或設置與指定鍵關聯的值。
Keys 獲取包含 HybridDictionary 中的鍵的 ICollection。
SyncRoot 獲取可用於同步對 HybridDictionary 的訪問的對象。
Values 獲取包含 HybridDictionary 中的值的 ICollection。

示例 1:


// C# code to get the number of key/value 
// pairs contained in the HybridDictionary. 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating a HybridDictionary named myDict 
        HybridDictionary myDict = new HybridDictionary(); 
  
        // Adding key/value pairs in myDict 
        myDict.Add("Australia", "Canberra"); 
        myDict.Add("Belgium", "Brussels"); 
        myDict.Add("Netherlands", "Amsterdam"); 
        myDict.Add("China", "Beijing"); 
        myDict.Add("Russia", "Moscow"); 
        myDict.Add("India", "New Delhi"); 
  
        // To get count of key/value pairs in myDict 
        Console.WriteLine("Total key/value pairs in myDict are : " 
                                                  + myDict.Count); 
    } 
} 
輸出:
Total key/value pairs in myDict are : 6

示例 2:


// C# code to check whether the 
// HybridDictionary is read-only. 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating a HybridDictionary named myDict 
        HybridDictionary myDict = new HybridDictionary(); 
  
        // Adding key/value pairs in myDict 
        myDict.Add("A", "Apple"); 
        myDict.Add("B", "Banana"); 
        myDict.Add("C", "Cat"); 
        myDict.Add("D", "Dog"); 
        myDict.Add("E", "Elephant"); 
        myDict.Add("F", "Fish"); 
  
        // To check whether the HybridDictionary 
        // is read-only. 
        Console.WriteLine(myDict.IsReadOnly); 
    } 
} 
輸出:
False

Methods

方法 說明
Add(Object, Object) 將具有指定鍵和值的條目添加到 HybridDictionary 中。
Clear() 從 HybridDictionary 中刪除所有條目。
Contains(Object) 確定HybridDictionary是否包含特定 key 。
複製到(數組,Int32) 將 HybridDictionary 條目複製到指定索引處的一維 Array 實例。
Equals(Object) 確定指定對象是否等於當前對象。
GetEnumerator() 返回一個迭代 HybridDictionary 的 IDictionaryEnumerator。
GetHashCode() 用作默認的哈希函數。
GetType() 獲取當前實例的類型。
MemberwiseClone() 創建當前對象的淺拷貝。
Remove(Object) 從 HybridDictionary 中刪除具有指定鍵的條目。
ToString() 返回表示當前對象的字符串。

示例 1:


// C# code to copy the HybridDictionary 
// entries to a one-dimensional Array 
// instance at the specified index. 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating a HybridDictionary named myDict 
        HybridDictionary myDict = new HybridDictionary(); 
  
        // Adding key/value pairs in myDict 
        myDict.Add("A", "Apple"); 
        myDict.Add("B", "Banana"); 
        myDict.Add("C", "Cat"); 
        myDict.Add("D", "Dog"); 
        myDict.Add("E", "Elephant"); 
        myDict.Add("F", "Fish"); 
  
        // Creating a one-dimensional Array named myArr 
        DictionaryEntry[] myArr = new DictionaryEntry[myDict.Count]; 
  
        // copying the HybridDictionary entries 
        // to a one-dimensional Array instance 
        // at the specified index 
        myDict.CopyTo(myArr, 0); 
  
        for (int i = 0; i < myArr.Length; i++) 
            Console.WriteLine(myArr[i].Key + " --> " + myArr[i].Value); 
    } 
} 
輸出:
A --> Apple
B --> Banana
C --> Cat
D --> Dog
E --> Elephant
F --> Fish

示例 2:


// C# code to remove the entry 
// with the specified key from 
// the HybridDictionary. 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating a HybridDictionary named myDict 
        HybridDictionary myDict = new HybridDictionary(); 
  
        // Adding key/value pairs in myDict 
        myDict.Add("A", "Apple"); 
        myDict.Add("B", "Banana"); 
        myDict.Add("C", "Cat"); 
        myDict.Add("D", "Dog"); 
        myDict.Add("E", "Elephant"); 
        myDict.Add("F", "Fish"); 
  
        // Displaying the number of key/value 
        // pairs in HybridDictionary myDict 
        Console.WriteLine("Number of key/value pairs in myDict are : " 
                                                       + myDict.Count); 
  
        // Removing the entry with the 
        // specified key from the HybridDictionary. 
        myDict.Remove("C"); 
  
        // Displaying the number of key/value 
        // pairs in HybridDictionary myDict 
        Console.WriteLine("Number of key/value pairs in myDict are : " 
                                                       + myDict.Count); 
    } 
} 
輸出:
Number of key/value pairs in myDict are : 6
Number of key/value pairs in myDict are : 5

參考:



相關用法


注:本文由純淨天空篩選整理自Sahil_Bansall大神的英文原創作品 C# | HybridDictionary Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。