C#键值对容器的介绍
程序员文章站
2023-12-19 11:18:34
stringdictionary:默认key不区分大小写 namevaluecollection:默认key区分大小写 keyedcollection:不是键值对容器,但是...
stringdictionary:默认key不区分大小写
namevaluecollection:默认key区分大小写
keyedcollection:不是键值对容器,但是比键值对容器更好用,强烈推荐
命名空间using system.collections.specialized
system.collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。
system.collections.generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。
system.collections.specialized 命名空间包含专用的和强类型的集合,例如,链接的列表词典、位向量以及只包含字符串的集合。
hashtable、sortedlist
sortedlist为可排序的字典,当添加元素时,元素按照正确的排序顺序插入sortedlist,同时索引自动进行相应的调整,移除元素亦然。
hashtable、sortedlist的键和值均为object类型,因此使用的时候,转化比较频繁
dictionary
范型dictionary,可以随便制定key,value的类型
复制代码 代码如下:
dictionary <string, string> dic = new dictionary <string, string> ();
dic.add( "1 ", "jerry ");
dic.add( "2 ", "kimmy ");
dic.add( "3 ", "tommy ");
也可以自己定义类来使用
复制代码 代码如下:
public class keyvalueitem
{
private int _value;
public int value
{
get
{
return _value;
}
}
private string _name;
public string name
{
get
{
return _name;
}
}
//
public keyvalueitem(string name, int value)
{
_name = name;
_value = //www.jb51.net/dgjack/archive/2012/03/03/value;
}
public override string tostring()
{
return _name;
}
}
插入值的时候:
复制代码 代码如下:
keyvalueitem it = new keyvalueitem("客户1", 1);
combobox1.items.add(it);
it = new keyvalueitem("客户2", 2);
combobox1.items.add(it);
it = new keyvalueitem("客户3", 3);
combobox1.items.add(it);
取值的时候就用 :
复制代码 代码如下:
int relationtype = ((keyvalueitem)combobox1.selecteditem).value;