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
參考:
相關用法
- C# HashSet用法及代碼示例
- C# Hashtable用法及代碼示例
- C# Hashtable和Dictionary的區別用法及代碼示例
- C# String Clone()用法及代碼示例
- C# String Compare()用法及代碼示例
- C# String CompareOrdinal()用法及代碼示例
- C# String CompareTo()用法及代碼示例
- C# String Concat()用法及代碼示例
- C# String Contains()用法及代碼示例
- C# String Copy()用法及代碼示例
- C# String CopyTo()用法及代碼示例
- C# String EndsWith()用法及代碼示例
- C# String Equals()用法及代碼示例
- C# String Format()用法及代碼示例
- C# String GetEnumerator()用法及代碼示例
- C# String IndexOf()用法及代碼示例
- C# String Insert()用法及代碼示例
- C# String IsInterned()用法及代碼示例
- C# String IsNormalized()用法及代碼示例
- C# String IsNullOrEmpty()用法及代碼示例
- C# String IsNullOrWhiteSpace()用法及代碼示例
- C# String Join()用法及代碼示例
- C# String LastIndexOf()用法及代碼示例
- C# String LastIndexOfAny()用法及代碼示例
- C# String Normalize()用法及代碼示例
注:本文由純淨天空篩選整理自Sahil_Bansall大神的英文原創作品 C# | HybridDictionary Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。