Previous topicNext topic
Help > 开发指南 > 编程基础 > 数据处理 >
字典

Dictionary

表示键和值的集合。可以方便高效地进行键值查找。

名称 类型 说明
Add 方法 将指定的键和值添加到字典中
Clear 方法 清除所有的键和值
ContainsKey 方法 判断是否包含指定的键
ContainsValue 方法 判断是否包括指定的值
Count 方法 返回字典中键/值对的数目
Remove 方法 移除指定的键和值
TryGetValue 方法 尝试通过某个Key值来获得值,如果有此Key则直接返回True,并将Value通过第二个参数返回,如果没有找到,则直接返回False.
Item(索引器) 属性 某个键对应的值
Keys 属性 返回键的集合
Values 属性 返回值的集合

 Vb.Net
'创建泛型字典,Key类型为int,Value类型为string
Dim myDictionary As Dictionary(Of Integer, String) = New Dictionary(Of Integer, String)()
'1.添加元素
myDictionary.Add(1, "a")
myDictionary.Add(2, "b")
myDictionary.Add(3, "c")
'可以直接赋值的方式添加元素。如果此时Key存在的话,则替换之前的值,如果Key不存在,则添加此键值对
myDictionary(5) = "e"

'2.删除元素
myDictionary.Remove(3)

'3.假如不存在元素则添加元素
If Not myDictionary.ContainsKey(4) Then
    myDictionary.Add(4, "d")
End If

'4.显示容量和元素个数
Proj.MsgDebug.Add("元素个数:{0}", myDictionary.Count)

'5.通过key查找元素
If myDictionary.ContainsKey(1) Then
    Proj.MsgDebug.Add("key:{0},value:{1}", "1", myDictionary(1))
    Proj.MsgDebug.Add(myDictionary(1))
End If

'6.通过KeyValuePair遍历元素
For Each kvp As KeyValuePair(Of Integer, String) In myDictionary
    Proj.MsgDebug.Add("key={0},value={1}", kvp.Key, kvp.Value)
Next

'7.得到哈希表键的集合
Dim keyCol As Dictionary(Of Integer, String).KeyCollection = myDictionary.Keys
'遍历键的集合
For Each n As Integer In keyCol
    Proj.MsgDebug.Add("key={0}", n)
Next

'8.得到哈希表值的集合
Dim valCol As Dictionary(Of Integer, String).ValueCollection = myDictionary.Values
'遍历值的集合
For Each s As String In valCol
    Proj.MsgDebug.Add("value:{0}", s)
Next

'9.使用TryGetValue方法获取指定键对应的值
Dim slove As String = String.Empty
If myDictionary.TryGetValue(5, slove) Then
    Proj.MsgDebug.Add("查找结果:{0}", slove)
Else
    Proj.MsgDebug.Add("查找失败")
End If

'10.清空哈希表
myDictionary.Clear()

'返回结果:元素个数:4
'返回结果:key:1,value:a
'返回结果:a
'返回结果:key=1,value=a
'返回结果:key=2,value=b
'返回结果:key=4,value=d
'返回结果:key=5,value=e
'返回结果:key=1
'返回结果:key=2
'返回结果:key=4
'返回结果:key=5
'返回结果:value:a
'返回结果:value:b
'返回结果:value:d
'返回结果:value:e
'返回结果:查找结果:e

 

C#
//创建泛型字典,Key类型为int,Value类型为string
Dictionary<int, string> myDictionary = new Dictionary<int, string>();
//1.添加元素
myDictionary.Add(1, "a");
myDictionary.Add(2, "b");
myDictionary.Add(3, "c");
//可以直接赋值的方式添加元素。如果此时Key存在的话,则替换之前的值,如果Key不存在,则添加此键值对
myDictionary[5]="e";

//2.删除元素
myDictionary.Remove(3);

//3.假如不存在元素则添加元素
if (!myDictionary.ContainsKey(4))
{
    myDictionary.Add(4, "d");
}

//4.显示容量和元素个数
Proj.MsgDebug.Add("元素个数:{0}",myDictionary.Count);

//5.通过key查找元素
if (myDictionary.ContainsKey(1))
{
    Proj.MsgDebug.Add("key:{0},value:{1}","1", myDictionary[1]);
    Proj.MsgDebug.Add(myDictionary[1]);
}

//6.通过KeyValuePair遍历元素
foreach (KeyValuePair<int,string>kvp in myDictionary)
{
    Proj.MsgDebug.Add("key={0},value={1}", kvp.Key, kvp.Value); 
}

//7.得到哈希表键的集合
Dictionary<int, string>.KeyCollection keyCol = myDictionary.Keys;
//遍历键的集合
foreach (int n in keyCol)
{
    Proj.MsgDebug.Add("key={0}", n);
}

//8.得到哈希表值的集合
Dictionary<int, string>.ValueCollection valCol = myDictionary.Values;
//遍历值的集合
foreach( string s in valCol)
{
    Proj.MsgDebug.Add("value:{0}",s);
}

//9.使用TryGetValue方法获取指定键对应的值
string slove = string.Empty;
if (myDictionary.TryGetValue(5, out slove))
{
    Proj.MsgDebug.Add("查找结果:{0}", slove);
}
else
{
    Proj.MsgDebug.Add("查找失败");
}

//10.清空哈希表
myDictionary.Clear();

//返回结果:元素个数:4
//返回结果:key:1,value:a
//返回结果:a
//返回结果:key=1,value=a
//返回结果:key=2,value=b
//返回结果:key=4,value=d
//返回结果:key=5,value=e
//返回结果:key=1
//返回结果:key=2
//返回结果:key=4
//返回结果:key=5
//返回结果:value:a
//返回结果:value:b
//返回结果:value:d
//返回结果:value:e
//返回结果:查找结果:e