C# Dictionary

目录

 Dictionary的本质

 申明

增删查改

遍历

练习


 Dictionary的本质
 

可以将Dictionary理解为 拥有泛型的Hashtable
它也是基于键的哈希代码组织起来的 键/值对
键值对类型从Hashtable的object变为了可以自己制定的泛型

 申明

需要引用命名空间 using System.Collections.Generic

Dictionary<int, string> dictionary = new Dictionary<int, string>();

增删查改

 增
            注意:不能出现相同键
            dictionary.Add(1, "123");
            dictionary.Add(2, "222");
            dictionary.Add(3, "222");
            //dictionary.Add(3, "123");
       

 删
            1.只能通过键去删除
             删除不存在键 没反应


            dictionary.Remove(1);
            dictionary.Remove(4);

            2.清空
            dictionary.Clear();

 

 查
            1.通过键查看值   找不到直接报错


            Console.WriteLine(dictionary[2]);
          
            Console.WriteLine(dictionary[1]);

            2.查看是否存在
             根据键检测
            if( dictionary.ContainsKey(4) )
            {
                Console.WriteLine("存在键为1的键值对");
            }


             根据值检测
            if (dictionary.ContainsValue("1234"))
            {
                Console.WriteLine("存在值为123的键值对");
            }

 改
            Console.WriteLine(dictionary[1]);
            dictionary[1] = "555";
            Console.WriteLine(dictionary[1]);

遍历


            用foreach遍历
            Console.WriteLine(dictionary.Count);


    1.遍历所有键
            foreach (int item in dictionary.Keys)
            {
                Console.WriteLine(item);
                Console.WriteLine(dictionary[item]);
            }


     2.遍历所有值
            foreach (string item in dictionary.Values)
            {
                Console.WriteLine(item);
            }


      3.键值对一起遍历
            foreach (KeyValuePair<int,string> item in dictionary)
            {
                Console.WriteLine("键:" + item.Key + "值:" + item.Value);
            }

练习


main
{
Dictionary<char , int> dir = new Dictionary<char, int>();
Console.WriteLine("请输入字母");
string a= Console.ReadLine(); 
for (int i = 0; i < a.Length; i++)
{
    if (dir.ContainsKey(a[i]))  //这里的a[i]直接获取String里面的char字符 
    {                           //因为String本质就是Char[] 类型
        dir[a[i]]++;
    }
    else
    dir.Add (a[i], 1);
}
foreach (char c in dir.Keys)
{
    Console.WriteLine(c+"  " + dir[c] +"次");
}

}
class Program
{
    public   static void Main()
    {
        string[] h = new string[] {"一","二","三","四","五","六","七","八","九","十"};
        Dictionary<int,String> dic = new Dictionary<int,String>();
        for (int i = 1 ,j=0; i < 10; i++)
        {
            dic.Add(i, h[j]);
            j++;
        }
        Console.WriteLine("输入三个数");
       string temp= Console.ReadLine();
        
        int [] b = new int[temp.Length];
        for (int i = 0; i < temp .Length; i++)
        {
            b[i]=temp[i]-'0';
        }

        for (int i = 0; i < b.Length; i++)
        {
            Console.WriteLine(dic[b[i]]);
        }
    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值