首页 > 代码库 > 字典---Dictionary<TKey,TValue>

字典---Dictionary<TKey,TValue>

=================================================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);
                }
            }
                
        }
    }
}

wKiom1QFxqfh7R1fAAJyT3EThQU611.jpg

本文出自 “程序猿的家” 博客,请务必保留此出处http://962410314.blog.51cto.com/7563109/1548024

字典---Dictionary<TKey,TValue>