电の岁月---点滴记忆
交流,分享,进步

<1>C#中的“键值对”(Key-Value)快乐体验

首先,Dictionary类,key唯一,values不唯一。

例子:在listbox中添加items,然后每单击一个item,就产生相应的相应。我以电视列表为例

代码

除了可以遍历所有基本类型的key,value,dictionary外,还可以使用自定义类型,如类,结构等,所以使用起来特别方便。

代码
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
Dictionary
<int, mycls> dic = new Dictionary<int, mycls>();
public Form1()
{
InitializeComponent();
add();
}

public class mycls
{
public string name;
public string gender;
public mycls(string Name, string Gender)
{
name
= Name;
gender
= Gender;
}
}
public void add()
{
mycls newcls
= new mycls("Lixing","M");
for (int i = 0; i < 2;i++ )
dic.Add(i,newcls);
foreach (var lists in dic.Values)
listBox1.Items.Add(lists.name);
}
}
}

接着是Hashtable类,其功能和类型方法和Dictionary都是大致相同的。对于值类型,特定类型(不包括object)的 Dictionary 的性能优于 Hashtable,这是因为 Hashtable 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱操作(拆箱)

另外值得注意的是:一般情况下,Hashtable类的构造函数是0参数或者只制定容量,并不指明key和value的类型,因此,在后面函数中进行遍历的时候不能像Dictionary类那样使用变量var,而要主动制定变量的类型!

代码
posted on 2010-08-11 20:23  doucontorl  阅读(196)  评论(0编辑  收藏  举报