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


C# ListDictionary用法及代码示例


ListDictionary是一个专门的集合。它位于 System.Collections.Specialized 命名空间下。该类型表示非通用字典类型。它是用链表实现的。此类是小型列表的字典集合 (System.Collections.IDictionary) 的简单实现。它实现了 IDictionary 方法和属性,建议与少量元素(少于 10 个)一起使用。

ListDictionary 类的特征:

  • ListDictionary 是使用单链表的 IDictionary 的简单实现。
  • 如果元素数量为 10 或更少,则它比 Hashtable 更小且更快。
  • 如果性能对于大量元素很重要,则不应使用ListDictionary。
  • ListDictionary 中的项目没有任何保证的顺序。
  • 钥匙不能空值,但一个值可以。

Constructors

构造函数 说明
ListDictionary() 使用默认比较器创建一个空的ListDictionary。
ListDictionary(IComparer) 使用指定的比较器创建一个空的ListDictionary。

例子:


// C# code to create a ListDictionary 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
// Driver code 
public static void Main() 
{ 
  
    // Creating a ListDictionary named myDict 
    ListDictionary myDict = new ListDictionary(); 
  
    // 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); 
      
    // Displaying the key/value pairs in myDict 
    Console.WriteLine("The key/value pairs in myDict are : "); 
  
    foreach(DictionaryEntry de in myDict) 
    { 
        Console.WriteLine(de.Key + " " + de.Value); 
    } 
} 
} 
输出:
Total key/value pairs in myDict are : 6
The key/value pairs in myDict are : 
Australia Canberra
Belgium Brussels
Netherlands Amsterdam
China Beijing
Russia Moscow
India New Delhi

Properties

属性 说明
Count 获取 ListDictionary 中包含的键/值对的数量。
IsFixedSize 获取一个值,该值指示 ListDictionary 是否具有固定大小。
IsReadOnly 获取一个值,该值指示ListDictionary是否为只读。
IsSynchronized 获取一个值,该值指示 ListDictionary 是否已同步(线程安全)。
项目[对象] 获取或设置与指定键关联的值。
Keys 获取包含 ListDictionary 中的键的 ICollection。
SyncRoot 获取可用于同步对 ListDictionary 的访问的对象。
Values 获取包含 ListDictionary 中的值的 ICollection。

示例 1:


// C# code to get the number 
// of key/value pairs contained 
// in the ListDictionary 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating a ListDictionary named myDict 
        ListDictionary myDict = new ListDictionary(); 
  
        // 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"); 
  
        // Displaying the number of key/value 
        // pairs contained in the ListDictionary 
        Console.WriteLine(myDict.Count); 
    } 
} 
输出:
6

示例 2:


// C# code to check if ListDictionary is read-only 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating a ListDictionary named myDict 
        ListDictionary myDict = new ListDictionary(); 
  
        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"); 
  
        // Checking if ListDictionary is read-only 
        Console.WriteLine(myDict.IsReadOnly); 
    } 
} 
输出:
False

Methods

方法 说明
Add(Object, Object) 将具有指定键和值的条目添加到 ListDictionary 中。
Clear() 从 ListDictionary 中删除所有条目。
Contains(Object) 确定ListDictionary是否包含特定 key 。
复制到(数组,Int32) 将 ListDictionary 条目复制到指定索引处的一维 Array 实例。
Equals(Object) 确定指定对象是否等于当前对象。
GetEnumerator() 返回一个迭代 ListDictionary 的 IDictionaryEnumerator。
GetHashCode() 用作默认的哈希函数。
GetType() 获取当前实例的类型。
MemberwiseClone() 创建当前对象的浅拷贝。
Remove(Object) 从 ListDictionary 中删除具有指定键的条目。
ToString() 返回表示当前对象的字符串。

示例 1:


// C# code to add an entry with 
// the specified key and value 
// into the ListDictionary 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
// Driver code 
public static void Main() 
{ 
  
    // Creating a ListDictionary named myDict 
    ListDictionary myDict = new ListDictionary(); 
  
    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"); 
  
    // Displaying the total number of elements in myDict 
    Console.WriteLine("Total number of elements in myDict are : " 
                                                  + myDict.Count); 
  
    // Displaying the elements in ListDictionary myDict 
    foreach(DictionaryEntry de in myDict) 
    { 
        Console.WriteLine(de.Key + " " + de.Value); 
    } 
} 
} 
输出:
Total number of elements in myDict are : 6
Australia Canberra
Belgium Brussels
Netherlands Amsterdam
China Beijing
Russia Moscow
India New Delhi

示例 2:


// C# code to remove all entries 
// from the ListDictionary 
using System; 
using System.Collections; 
using System.Collections.Specialized; 
  
class GFG { 
  
// Driver code 
public static void Main() 
{ 
  
    // Creating a ListDictionary named myDict 
    ListDictionary myDict = new ListDictionary(); 
  
    // Adding key/value pairs in myDict 
    myDict.Add("I", "first"); 
    myDict.Add("II", "second"); 
    myDict.Add("III", "third"); 
    myDict.Add("IV", "fourth"); 
    myDict.Add("V", "fifth"); 
  
    // To get count of key/value pairs in myDict 
    Console.WriteLine("Total key/value pairs in myDict are : " 
                                              + myDict.Count); 
                                                
    // Displaying the key/value pairs in myDict 
  
    Console.WriteLine("The key/value pairs in myDict are : "); 
  
    foreach(DictionaryEntry de in myDict) 
    { 
        Console.WriteLine(de.Key + " " + de.Value); 
    } 
  
    // Removing all entries from the ListDictionary 
    myDict.Clear(); 
  
    // To get count of key/value pairs in myDict 
    Console.WriteLine("Total key/value pairs in myDict are : " 
                                              + myDict.Count); 
  
    // Displaying the key/value pairs in myDict 
  
    Console.WriteLine("The key/value pairs in myDict are : "); 
  
    foreach(DictionaryEntry de in myDict) 
    { 
        Console.WriteLine(de.Key + " " + de.Value); 
    } 
} 
} 
输出:
Total key/value pairs in myDict are : 5
The key/value pairs in myDict are : 
I first
II second
III third
IV fourth
V fifth
Total key/value pairs in myDict are : 0
The key/value pairs in myDict are :

参考:



相关用法


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