当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。