C# Dictionary类用法

这篇博客介绍了C#中使用Dictionary类进行键值对操作的方法,包括如何插入、查找、删除键值对以及如何遍历字典中的元素。示例代码展示了创建Person对象并存储在字典中,然后进行取值、遍历和删除操作的过程,突出了字典在快速查找上的优势。
摘要由CSDN通过智能技术生成

可以实现通过键值查找、插入、删除一个键-值对的操作,这些如果用数组实现都非常麻烦。
Key就是键,value就是值
我们在很多地方都会用到字典,他的特点就是查找很快,当然比List快。
字典必须包含名空间System.Collection.Generic
Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)
键必须是唯一的,而值不需要唯一的键和值都可以是任何类型(比如:string, int, 自定义类型,等等)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Person
    {
        private string _name; //姓名
        private int _age; //年龄
                          //创建Person对象
        public Person(string Name, int Age)
        {
            this._name = Name;
            this._age = Age;
        }
        //姓名
        public string Name
        {
            get { return _name; }
        }
        //年龄
        public int Age
        {
            get { return _age; }
            set {; }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

		 Dictionary<int, Person> dicPerson = new Dictionary<int, Person>();
            dicPerson.Add(0, p1); //方式1
            dicPerson[1] = p2;    //方式2

            //取值
            Console.WriteLine("\n");
            Console.WriteLine("取值  name:" + dicPerson[0].Name + "—" + "age:" + dicPerson[0].Age);


            //遍历key
            Console.WriteLine("\n");
            Console.WriteLine("遍历 key");
            foreach (int key in dicPerson.Keys)
            {
                string id = "用户ID:" + key;
                string str = string.Format("name:{0} age:{1}", dicPerson[key].Name, dicPerson[key].Age);
                Console.WriteLine(id + "\t" + str);
            }

            //遍历value
            Console.WriteLine("\n");
            Console.WriteLine("遍历 value");
            foreach (Person value in dicPerson.Values)
            {
                string str = string.Format("name:{0} age:{1}", value.Name, value.Age);
                Console.WriteLine(str);
            }

            //遍历字典
            Console.WriteLine("\n");
            Console.WriteLine("遍历字典");
            foreach (KeyValuePair<int, Person> kvp in dicPerson)
            {
                string str = string.Format("key:{0}/name:{1}/age:{2}", kvp.Key, kvp.Value.Name, kvp.Value.Age);
                Console.WriteLine(str);
            }

            //  删除元素
            Console.WriteLine("\n");
            Console.WriteLine("删除元素");
            if (dicPerson.ContainsKey(1))    //如果存在
                dicPerson.Remove(1);
            foreach (Person value in dicPerson.Values)
            {
                string str = string.Format("name:{0} age:{1}", value.Name, value.Age);
                Console.WriteLine(str);
            }
            //清除所有的元素
            dicPerson.Clear();

            Console.ReadKey();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值