C#中的HybridDictionary类?

HybridDictionary类通过在集合较小时使用ListDictionary来实现IDictionary,然后在集合变大时切换到Hashtable。

以下是HybridDictionary类的属性-

序号属性和说明
1Count
获取HybridDictionary中包含的键/值对的数量。
2IsFixedSize
获取一个值,该值指示HybridDictionary是否具有固定大小。
3IsReadOnly
获取一个值,该值指示HybridDictionary是否为只读。
4IsSynchronized
获取一个值,该值指示HybridDictionary是否已同步(线程安全)。
5Item [Object]
获取或设置与指定键关联的值。
6Keys
获取一个ICollection,其中包含HybridDictionary中的键。
7SyncRoot
获取一个对象,该对象可用于同步对HybridDictionary的访问。
8Values
获取一个ICollection,其中包含HybridDictionary中的值。

以下是HybridDictionary类的一些方法-

序号方法与说明
1Add(Object,Object)
将具有指定键和值的条目添加到HybridDictionary中。
2Clear()
从HybridDictionary中删除所有条目。
3Contains(Object)
确定HybridDictionary是否包含特定键。
4CopyTo(Array,Int32)
将HybridDictionary条目复制到指定索引处的一维Array实例。
5Equals(Object)
确定指定的对象是否等于当前的对象。(继承自Object)
6GetEnumerator()
返回一个迭代HybridDictionary的IDictionaryEnumerator。
7GetHashCode()
用作默认哈希函数。(继承自Object)
8GetType()
获取当前实例的类型。(继承自Object)

要计算HybridDictionary中的键/值对的数量,代码如下-

示例

现在让我们看一些例子-

using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      HybridDictionary dict1 = new HybridDictionary();
      dict1.Add("A", "SUV");
      dict1.Add("B", "MUV");
      dict1.Add("C", "AUV");
      Console.WriteLine("HybridDictionary1 elements...");
      foreach(DictionaryEntry d in dict1) {
         Console.WriteLine(d.Key + " " + d.Value);
      }
      Console.WriteLine("Count of Key/value pairs in Dictionary1 = "+dict1.Count);
      HybridDictionary dict2 = new HybridDictionary();
      dict2.Add("1", "One");
      dict2.Add("2", "Two");
      dict2.Add("3", "Three");
      dict2.Add("4", "Four");
      dict2.Add("5", "Five");
      dict2.Add("6", "Six");
      Console.WriteLine("\nHybridDictionary2 elements...");
      foreach(DictionaryEntry d in dict2) {
         Console.WriteLine(d.Key + " " + d.Value);
      }
      Console.WriteLine("Count of Key/value pairs in Dictionary2 = "+dict1.Count);
      dict2.Clear();
      Console.WriteLine("Count of Key/value pairs in Dictionary2 (Updated) = "+dict2.Count);
   }
}

输出结果

这将产生以下输出-

HybridDictionary1 elements...
A SUV
B MUV
C AUV
Count of Key/value pairs in Dictionary1 = 3
HybridDictionary2 elements...
1 One
2 Two
3 Three
4 Four
5 Five
6 Six
Count of Key/value pairs in Dictionary2 = 3
Count of Key/value pairs in Dictionary2 (Updated) = 0

要检查HybridDictionary是否同步,代码如下-

示例

using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      HybridDictionary dict1 = new HybridDictionary();
      dict1.Add("A", "Books");
      dict1.Add("B", "Electronics");
      dict1.Add("C", "Smart Wearables");
      dict1.Add("D", "Pet Supplies");
      dict1.Add("E", "Clothing");
      dict1.Add("F", "Footwear");
      Console.WriteLine("HybridDictionary1 elements...");
      foreach(DictionaryEntry d in dict1) {
         Console.WriteLine(d.Key + " " + d.Value);
      }
      Console.WriteLine("HybridDictionary1的大小是否固定? = "+dict1.IsFixedSize);
      Console.WriteLine("HybridDictionary1是只读的? = "+dict1.IsReadOnly);
      Console.WriteLine("HybridDictionary1 是否同步= "+dict1.IsSynchronized);
      HybridDictionary dict2 = new HybridDictionary();
      dict2.Add("1", "One");
      dict2.Add("2", "Two");
      dict2.Add("3", "Three");
      dict2.Add("4", "Four");
      dict2.Add("5", "Five");
      dict2.Add("6", "Six");
      Console.WriteLine("\nHybridDictionary2 elements...");
      foreach(DictionaryEntry d in dict2) {
         Console.WriteLine(d.Key + " " + d.Value);
      }
      Console.WriteLine("HybridDictionary1是否等于HybridDictionary2? = "+(dict1.Equals(dict2)));
      Console.WriteLine("HybridDictionary2是否具有固定大小? = "+dict2.IsFixedSize);
      Console.WriteLine("Hybriditionary2 是只读的? = "+dict2.IsReadOnly);
      Console.WriteLine("HybridDictionary2是否同步 = "+dict2.IsSynchronized);
   }
}

输出结果

这将产生以下输出-

HybridDictionary1 elements...
A Books
B Electronics
C Smart Wearables
D Pet Supplies
E Clothing
F Footwear
HybridDictionary1的大小是否固定? = False
HybridDictionary1 是否只读? = False
HybridDictionary1 是否同步= False
HybridDictionary2 elements...
1 One
2 Two
3 Three
4 Four
5 Five
6 Six
HybridDictionary1是否等于HybridDictionary2? = False
HybridDictionary2是否具有固定大小? = False
Hybriditionary2 是只读的? = False
HybridDictionary2是否同步 = False