您的位置:首页 > 产品设计 > UI/UE

C# Dictionary的用法 KeyValuePair<TKey, TValue> 结构

2013-03-19 16:11 656 查看
泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含了一些基于泛型的集合类,使用泛型集合类可以提供更高的类型安全性,还有更高的性能,避免了非泛型集合的重复的装箱和拆箱。

简介

在C#中,Dictionary提供快速的基于兼职的元素查找。当你有很多元素的时候可以使用它。它包含在System.Collections.Generic名空间中。

在使用前,你必须声明它的键类型和值类型

详细说明

必须包含名空间System.Collection.Generic

Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)

键必须是唯一的,而值不需要唯一的

键和值都可以是任何类型(比如:string, int, 自定义类型,等等)

通过一个键读取一个值的时间是接近O(1)

创建和初始化一个Dictionary对象

Dictionary<char,int> dic=new
Dictionary<char,int>()

//计算字符串中每种字符出现的次数(面试题)。“Welcome
to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”……

列子

static void Main(string[]
args)

{

//实例化对象,声明它的键类型和值类型。结构:Dictionary<[key], [value]>

//他的特点是存入对象是需要与[key]值一一对应的存入该泛型 通过某一个一定的[key]去找到对应的值

Dictionary<char,int> dic=new Dictionary<char,int>();

string str = "Welcome to C h i naworld";

//先去掉字符串中的空格,然后转换为小写

str = str.Replace(" ","").ToLower();

//把字符串转化为字符数组

char[] arr = str.ToCharArray();

//从字符数组中遍历每个字符,然后记录到Dictionary<char,int>中

foreach(char c in arr)

{//如果你尝试读取字典中一个不存在的键,那么你会得到一个KeyNotFoundException。

所有在读取一个键之前,你必须先使用ContainKey来核对键是否存在字典中。

//判断Dictionary<char,int> 是否包含相应的key键(:就是字符例如'K')

if (!dic.ContainsKey(c))

{

//如果不存在就添加键并给他一个(value)值1

dic.Add(c, 1);

}

else

{ // 如果存在相应的key键(:例如已经有了“k”字符),就对它对应的(value)值+1

dic[c] = dic[c] + 1;

}

}

//使用KeyValuePair记录枚举字典中的键/值,ke.Key, ke.Value获取键对应的值

foreach(KeyValuePair<char,int> ke in dic)

{

Console.WriteLine("{0}出现{1}次\n",ke.Key,ke.Value);

}

//////

KeyValuePair<TKey, TValue>

foreach (KeyValuePair<string, string> kvp in openWith)
{
outputBlock.Text += String.Format("Key = {0}, Value = {1}",
kvp.Key, kvp.Value) + "\n";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: