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


C# OrderedDictionary用法及代码示例


OrderedDictionary 类表示可通过键或索引访问的键/值对的集合。它存在于 System.Collections.Specialized 命名空间中。

OrderedDictionary 类的属性:

  • 每个元素都是一个键/值对,存储在DictionaryEntry对象。
  • 钥匙不能空值,但可以是一个值。
  • OrderedDictionary 的元素不按键排序。
  • 元素可以通过键或索引来访问。

Constructors

构造函数 说明
OrderedDictionary() 初始化 OrderedDictionary 类的新实例。
OrderedDictionary(IEqualityComparer) 使用指定的比较器初始化 OrderedDictionary 类的新实例。
有序字典(Int32) 使用指定的初始容量初始化 OrderedDictionary 类的新实例。
OrderedDictionary(Int32,IEqualityComparer) 使用指定的初始容量和比较器初始化 OrderedDictionary 类的新实例。
OrderedDictionary(SerializationInfo, StreamingContext) 初始化 OrderedDictionary 类的新实例,该实例可使用指定的 SerializationInfo 和 StreamingContext 对象进行序列化。

例子:


// C# code to create a OrderedDictionary 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver method 
    public static void Main() 
    { 
  
        // Creating a orderedDictionary named myDict 
        OrderedDictionary myDict = new OrderedDictionary(); 
  
        // Adding key and value in myDict 
        myDict.Add("1", "ONE"); 
        myDict.Add("2", "TWO"); 
        myDict.Add("3", "THREE"); 
  
        // Displaying the number of key/value 
        // pairs in myDict 
        Console.WriteLine(myDict.Count); 
  
        // Displaying the key/value pairs in myDict 
        foreach(DictionaryEntry de in myDict) 
            Console.WriteLine(de.Key + " --> " + de.Value); 
    } 
} 

输出:

3
1 --> ONE
2 --> TWO
3 --> THREE

Properties

属性 说明
Count 获取 OrderedDictionary 集合中包含的键/值对的数量。
IsReadOnly 获取一个值,该值指示OrderedDictionary 集合是否为只读。
项目[Int32] 获取或设置指定索引处的值。
项目[对象] 获取或设置具有指定键的值。
Keys 获取包含 OrderedDictionary 集合中的键的 ICollection 对象。
Values 获取包含 OrderedDictionary 集合中的值的 ICollection 对象。

示例 1:


// C# code to check if OrderedDictionary 
// collection is read-only 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver method 
    public static void Main() 
    { 
  
        // Creating a orderedDictionary named myDict 
        OrderedDictionary myDict = new OrderedDictionary(); 
  
        // Adding key and value in myDict 
        myDict.Add("key1", "value1"); 
        myDict.Add("key2", "value2"); 
        myDict.Add("key3", "value3"); 
        myDict.Add("key4", "value4"); 
        myDict.Add("key5", "value5"); 
  
        // Checking if OrderedDictionary 
        // collection is read-only 
        Console.WriteLine(myDict.IsReadOnly); 
    } 
} 

输出:

False

示例 2:


// C# code to get the number of 
// key/values pairs contained 
// in the OrderedDictionary 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver method 
    public static void Main() 
    { 
  
        // Creating a orderedDictionary named myDict 
        OrderedDictionary myDict = new OrderedDictionary(); 
  
        // Adding key and value in myDict 
        myDict.Add("A", "Apple"); 
        myDict.Add("B", "Banana"); 
        myDict.Add("C", "Cat"); 
        myDict.Add("D", "Dog"); 
  
        // To Get the number of key/values 
        // pairs contained in the OrderedDictionary 
        Console.WriteLine("Number of key/value pairs are : " 
                                            + myDict.Count); 
    } 
} 

输出:

Number of key/value pairs are : 4

Methods

方法 说明
Add(Object, Object) 将具有指定键和值的条目添加到具有最低可用索引的 OrderedDictionary 集合中。
AsReadOnly() 返回当前 OrderedDictionary 集合的只读副本。
Clear() 从 OrderedDictionary 集合中删除所有元素。
Contains(Object) 确定 OrderedDictionary 集合是否包含特定键。
复制到(数组,Int32) 将 OrderedDictionary 元素复制到指定索引处的一维 Array 对象。
Equals(Object) 确定指定对象是否等于当前对象。
GetEnumerator() 返回迭代 OrderedDictionary 集合的 IDictionaryEnumerator 对象。
GetHashCode() 用作默认的哈希函数。
GetObjectData(SerializationInfo, StreamingContext) 实现 ISerialized 接口并返回序列化 OrderedDictionary 集合所需的数据。
GetType() 获取当前实例的类型。
插入(Int32,对象,对象) 使用指定索引处的指定键和值将新条目插入OrderedDictionary 集合中。
MemberwiseClone() 创建当前对象的浅拷贝。
OnDeserialization(Object) 实现 ISerialized 接口,当反序列化完成时由反序列化事件回调。
Remove(Object) 从 OrderedDictionary 集合中删除具有指定键的条目。
删除 (Int32) 从 OrderedDictionary 集合中删除指定索引处的条目。
ToString() 返回表示当前对象的字符串。

示例 1:


// C# code to get a read-only 
// copy of the OrderedDictionary 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver method 
    public static void Main() 
    { 
  
        // Creating a orderedDictionary named myDict 
        OrderedDictionary myDict = new OrderedDictionary(); 
  
        // Adding key and value in myDict 
        myDict.Add("key1", "value1"); 
        myDict.Add("key2", "value2"); 
        myDict.Add("key3", "value3"); 
        myDict.Add("key4", "value4"); 
        myDict.Add("key5", "value5"); 
  
        // To Get a read-only copy of 
        // the OrderedDictionary 
        OrderedDictionary myDict_1 = myDict.AsReadOnly(); 
  
        // Checking if myDict_1 is read-only 
        Console.WriteLine(myDict_1.IsReadOnly); 
    } 
} 

输出:

True

示例 2:


// C# code to remove the entry 
// with the specified key from 
// the OrderedDictionary 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver method 
    public static void Main() 
    { 
  
        // Creating a orderedDictionary named myDict 
        OrderedDictionary myDict = new OrderedDictionary(); 
  
        // Adding key and value in myDict 
        myDict.Add("key1", "value1"); 
        myDict.Add("key2", "value2"); 
        myDict.Add("key3", "value3"); 
        myDict.Add("key4", "value4"); 
        myDict.Add("key5", "value5"); 
  
        // Displaying the number of element initially 
        Console.WriteLine("Number of elements are : " + myDict.Count); 
  
        // Displaying the elements in myDict 
        foreach(DictionaryEntry de in myDict) 
            Console.WriteLine(de.Key + " -- " + de.Value); 
  
        // Removing the entry with the specified 
        // key from the OrderedDictionary 
        myDict.Remove("key2"); 
  
        // Displaying the number of element initially 
        Console.WriteLine("Number of elements are : " + myDict.Count); 
  
        // Displaying the elements in myDict 
        foreach(DictionaryEntry de in myDict) 
            Console.WriteLine(de.Key + " -- " + de.Value); 
    } 
} 

输出:

Number of elements are : 5
key1 -- value1
key2 -- value2
key3 -- value3
key4 -- value4
key5 -- value5
Number of elements are : 4
key1 -- value1
key3 -- value3
key4 -- value4
key5 -- value5

参考:



相关用法


注:本文由纯净天空筛选整理自Sahil_Bansall大神的英文原创作品 C# | OrderedDictionary Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。