创建有root和子节点的IDictionary object

本文介绍了一种使用Hashtable和ArrayList来创建包含根节点和子节点的IDictionary对象的方法。通过具体的代码示例展示了如何组织数据结构,并为每个节点添加属性如title、link和description。
 
  IDictionary   rootMap   =   new   Hashtable();  
  IList   items   =   new   ArrayList();  
  IDictionary   itemMap   =   null;  
  rootMap.Add("items",   items);  
  rootMap   =   new   Hashtable();  
  items.Add(rootMap);  
   
  itemMap.Add("title",   "itemTitle");  
  itemMap.Add("link",   "itemLink");  
  itemMap.Add("description",   "itemDescription");  
   
  rootMap.Add("title",   "rootTitle");  
  rootMap.Add("description",   "rootDescription");  
  rootMap.Add("link",   "rootLink");

创建有root和子节点的IDictionary object
### C# 中 `IDictionary` 接口与 `Dictionary` 类的区别 #### 定义与角色 `System.Collections.Generic.IDictionary<TKey,TValue>` 是一个接口,规定了一组方法、属性、事件以及索引器,用于实现键值对集合的操作[^2]。而 `System.Collections.Generic.Dictionary<TKey,TValue>` 则是一个具体实现了此接口的类,提供了高效的哈希表来存储键值对数据结构[^1]。 #### 抽象层次 由于 `IDictionary<TKey,TValue>` 属于抽象层面上的概念描述,因此它并不涉及具体的实现细节;相反,`Dictionary<TKey,TValue>` 提供了实际的功能实现,可以直接实例化并使用其成员函数来进行操作。 #### 使用场景 当开发者希望编写能够接受任何类型的字典对象作为参数的方法时,通常会选择依赖于 `IDictionary<TKey,TValue>` 接口而非特定的 `Dictionary<TKey,TValue>` 实现。这样做可以使代码更加灵活通用,允许传入不同种类的具体字典类型(如 `SortedDictionary<TKey,TValue>`, `ConcurrentDictionary<TKey,TValue>` 等),只要它们都遵循相同的契约即实现了该接口即可。 ```csharp public void ProcessItems(IDictionary<int, string> items) { foreach (var item in items) { Console.WriteLine($"Key: {item.Key}, Value: {item.Value}"); } } ``` 另一方面,在应用程序内部创建管理自己的映射关系时,则往往倾向于直接利用性能优化过的 `Dictionary<TKey,TValue>` 来提高效率[^3]。 ```csharp var myDict = new Dictionary<string, int>(); myDict.Add("apple", 1); myDict["banana"] = 2; Console.WriteLine(myDict.ContainsKey("orange")); // Output: False ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值