zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#【泛型篇】Dictionary应用实例2

2023-09-11 14:15:48 时间
using System;
using System.Collections.Generic;

namespace ConsoleApp3
{
    class Person
    {
        public string name;
        public int age;

        //构造函数
        public Person(string name, int age)
        {
            this.name = name;
            this.age = age;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //定义一个字典变量
            Dictionary<int, Person> dicPerson = new Dictionary<int, Person>();
            LearnDictionaryInfo();
            void LearnDictionaryInfo()
            {
                //添加键值 
                Person p1 = new Person("Star", 22);
                Person p2 = new Person("SS", 21);
                dicPerson.Add(0, p1); //方式1
                dicPerson[1] = p2;    //方式2

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

                //改值
                Console.WriteLine("\n");
                dicPerson[1].age = 20;
                Console.WriteLine("改值  name:" + dicPerson[1].name + "—" + "age:" + dicPerson[1].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.ReadLine();
            }
        }
    }
}