热门IT资讯网

字典---Dictionary<TKey,TValue>

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,=================================================EmployeeID.cs(学生编号类)using System;using System.Colle

=================================================EmployeeID.cs(学生编号类)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication7{    //作为键的类型必须要重写GetHashCode()    public class EmployeeID : IEquatable    {        public string ID { get; private set; }        public EmployeeID(string s)        {            ID = s;        }        public override bool Equals(object obj)        {            if (obj == null) throw new ArgumentException("对象不能为空");            return this.Equals(obj as EmployeeID);        }        public override int GetHashCode()        {            return 1;        }        public bool Equals(EmployeeID other)        {            return this.ID == other.ID;        }    }}

=================================================Student.cs(学生类)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication7{    public class Student    {        public string Name { get; private set; }        public EmployeeID ID { get; private set; }        public Student(EmployeeID id, string name)        {            this.Name = name;            this.ID = id;        }    }}

=================================================主程序

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication7{    class Program    {        static void Main(string[] args)        {            Dictionary d = new Dictionary();            var ID1 = new EmployeeID("Z001");            var Stu1 = new Student(ID1, "张飞");            d.Add(ID1, Stu1);            var ID2 = new EmployeeID("Z002");            var Stu2 = new Student(ID2, "关羽");            d.Add(ID2, Stu2);            var ID3 = new EmployeeID("Z003");            var Stu3 = new Student(ID3, "曹操");            d.Add(ID3, Stu3);            var ID4 = new EmployeeID("Z004");            var Stu4 = new Student(ID4, "赵云");            d.Add(ID4, Stu4);            var ID5 = new EmployeeID("Z005");            var Stu5 = new Student(ID5, "马超");            d.Add(ID5, Stu5);            while (true)            {                string str = Console.ReadLine();                if (str.ToLower() == "exit") return;                Student s;                EmployeeID ei = null;                ei = new EmployeeID(str);                if (!d.TryGetValue(ei, out s))//判断是否存在键对应的相关的值                {                    Console.WriteLine("没有找到该学生");                }                else                {                    Console.WriteLine(d[ei].Name);                }            }                        }    }}

0