简介:拥有泛型的Hashtable,是基于键的哈希代码组织起来的,键值对。
键值对的类型从Hashtable的object类变为自己可以指定的泛型。
声明:Dictionary<int,string> dic1 = new Dictionary<int,string>();
增:
dic1.Add(1, "这是1");
dic1.Add(2, "afj;");
dic1.Add(3, "aj;lf");
删:
dic1.Remove(1);
dic1.Clear();
查:
//与Hashtable的区别,找不到直接报错
//Console.WriteLine(dic1[4]);
Console.WriteLine(dic1[1]);
//查看键是否存在
if (dic1.ContainsKey(1))
{
Console.WriteLine("存在键值为1的键值对!");
}
if (dic1.ContainsValue("这是1"))
{
Console.WriteLine("存在值为”这是1“的键值对!");
}
改:
dic1[1] = "改成2";
遍历:
//长度
Console.WriteLine(dic1.Count);
//foreach遍历所有键
Console.WriteLine("==================");
foreach (int item in dic1.Keys)
{
Console.WriteLine(item);
}
//foreach遍历所有值
Console.WriteLine("==================");
foreach (string item in dic1.Values)
{
Console.WriteLine(item);
}
//foreach遍历所有键值对
Console.WriteLine("==================");
foreach (KeyValuePair<int,string> item in dic1)
{
Console.WriteLine(item.Key);
Console.WriteLine(item.Value);
}
练习题:
namespace Dictionary
{
internal class Program
{
static void Main(string[] args)
{
//练习题一:
//使用字典存储0-9的数字对应的大写汉字数字
//提示用户输入一个不超过三位的数,提供一个方法,返回数的大写
//例如:306,返回叁零陆
Dictionary<int,string> number = new Dictionary<int,string>();
//使用字典存储0-9的数字对应的大写汉字数字
number.Add(0, "零");
number.Add(1, "壹");
number.Add(2, "贰");
number.Add(3, "叁");
number.Add(4, "肆");
number.Add(5, "伍");
number.Add(6, "陆");
number.Add(7, "柒");
number.Add(8, "捌");
number.Add(9, "玖");
//提示用户输入一个不超过三位的数
try
{
Console.WriteLine("请输入一个不超过三位的数字");
string number000 = Console.ReadLine();
//返回对应的大写文字
Console.WriteLine(Capitalization(number000));
}
catch
{
Console.WriteLine("请输入一个不超过三位的数字!!");
}
//提供一个方法,返回数的大写
string Capitalization (string number01)
{
string temp = "";
for (int i = 0; i < number01.Length; i++)
{
//先得到string每个数字字符char,char不能直接将数字转成对应的数字,直接转int得到的是char字符的ASCII值,
//所以,先将char字符转string,再转成int类型。
int k = Convert.ToInt32(Convert.ToString(number01[i]));
for (int j = 0; j < 9; j++)
{
if (k == j)
{
temp += number[j];
}
}
}
return temp;
}
//练习题二:
//计算每个字母出现的次数,“Welcome to Unity World!”,使用字典存储,最后遍历整个字典,不区分大小写。
string str = "Welcome to Unity World!";
string strLower = str.ToLower();
char[] chars = strLower.ToCharArray();
Dictionary<char,int> dics = new Dictionary<char,int>();
string strTemp = "";
for (int i = 0;i < chars.Length;i++)
{
if (chars[i] >= 97 && chars[i] <= 122)
{
strTemp += chars[i];
}
}
Console.WriteLine(strTemp);
for (int i = 0;i<strTemp.Length;i++)
{
int k = 1;
if (!dics.ContainsKey(strTemp[i]))
{
dics.Add(strTemp[i], k);
}
else
{
dics[strTemp[i]]++;
}
}
foreach(KeyValuePair<char, int> item in dics)
{
Console.Write(item.Key+ "出现的次数是:");
Console.Write(item.Value+"\n");
}
}
}
}