数据结构和算法 – 6.构建字典: DictionaryBase 类和 SortedList 类
6.1.DictionaryBase 类的基础方法和属性
大家可以把字典数据结构看成是一种计算机化的词典。要查找的词就是关键字,而词的定义就是值。
DictionaryBase 类是一种用作专有字典实现基础的抽象( MusInherit)类。
存储在字典中的键值对实际上是作为 DictionaryEntry 对象来存储的。 DictionaryEntry 结构提供了两个域,一个用于关键字而另一个用于值。在这个结构中所要关注的只是 Key 属性和 Value 属性这两个属性(或方法)。当把键值对录入到字典内的时候,这些方法会返回存储的值。本章稍后会讨论 DictionaryEntry 对象。就内部而言,会把键值对存储在被称为 InnerHashTable 的散列表对象中。DictionaryBase 类实际上实现了来自 System.Collections 名字空间的界面,即 IDictionary。
class DictionaryBase_类和_SortedList_类 { static void Main() { IPAddresses myIPs = new IPAddresses(); myIPs.Add("Mike", "192.155.12.1"); myIPs.Add("David", "192.155.12.2"); myIPs.Add("Bernica", "192.155.12.3"); Console.WriteLine("There are " + myIPs.Count + " IP addresses"); Console.WriteLine("David's ip address: " + myIPs.Item("David")); myIPs.Clear(); Console.WriteLine("There are " + myIPs.Count + " IP addresses"); Console.Read(); } } public class IPAddresses : DictionaryBase { public IPAddresses() { } public void Add(string name, string ip) { base.InnerHashtable.Add(name, ip); } public string Item(string name) { return base.InnerHashtable[name].ToString(); } public void Remove(string name) { base.InnerHashtable.Remove(name); } }
6.1.1.CopyTo 方法和 GetEnumerator 方法#
DictionaryEntry 结构提供了两个域,一个用于关键字而另一个用于值。在这个结构中所要关注的只是 Key 属性和 Value 属性这两个属性(或方法)。
DictionaryEntry[] ips = new DictionaryEntry[myIPs.Count]; myIPs.CopyTo(ips, 0); for (int i = 0; i <= ips.GetUpperBound(0); i++) { Console.WriteLine(string.Format("key:{0},Value:{1}",ips[i].Key,ips[i].Value)); }
6.2.泛型的 KeyValuePair 类
一个 KeyValuePair 对象可以向下列这样实例化:
KeyValuePair<string, int> mcmillan = new KeyValuePair<string, int>("McMillan", 99);
这里会分别取回关键字和值:
Console.Write(mcmillan.Key);
Console.Write(" " + mcmillan.Value);
KeyValuePair<string,int>[] gradeBook=new KeyValuePair<string,int>[10]; gradeBook[0] = new KeyValuePair<string, int>("McMillan", 99); gradeBook[1] = new KeyValuePair<string, int>("Ruff", 64); for (int i = 0; i <= gradeBook.GetUpperBound(0); i++) if (gradeBook[i].Value != 0) Console.WriteLine(gradeBook[i].Key + ": " + gradeBook[i].Value); Console.Read();
6.3.SortedList 类
SortedList 是按照分类顺序基于键值来存储键值对。当存储的关键字很重要时可以使用这种数据结构。比如,在标准词典中希望所存储的词是按照字母的顺序存储的情况。本章稍后还将说明如何用类来保存一个单独分类的值表。
例如,可以把 myips 象下面这样实例化:
SortedList<string, string> myips = new SortedList<string, string>(); myips.Add("Mike", "192.155.12.1"); myips.Add("David", "192.155.12.2"); myips.Add("Bernica", "192.155.12.3"); foreach (string key in myips.Keys) Console.WriteLine("Name: " + key + "\n" + "IP: " + myips[key]);
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/p/5520131.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2012-05-23 GridView里绑定DropdownList