温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

字典---Dictionary<TKey,TValue>

发布时间:2020-04-11 11:14:16 来源:网络 阅读:783 作者:1473348968 栏目:编程语言

=================================================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<EmployeeID>
    {
        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<EmployeeID, Student> d = new Dictionary<EmployeeID, Student>();
            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);
                }
            }
                
        }
    }
}

字典---Dictionary<TKey,TValue>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI