码迷,mamicode.com
首页 > 其他好文 > 详细

字典---Dictionary<TKey,TValue>

时间:2014-09-03 02:44:16      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:字典   dictionary   c#字典   

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

bubuko.com,布布扣

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

字典---Dictionary<TKey,TValue>

标签:字典   dictionary   c#字典   

原文地址:http://962410314.blog.51cto.com/7563109/1548024

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!