C#基础:自定义字典的使用

字典,通过key---value键值对存储,访问数据的,可以通过继承DictionaryBase类来创建自定义字典,DictionaryBase类实现了IEnumerable和ICollection接口。

  1.  public abstract class Animal//父类,抽象类
  2.     {
  3.         private string name;
  4.         public string Name
  5.         {
  6.             set { this.name = value; }
  7.             get { return this.name; }
  8.         }
  9.         public Animal() {
  10.             this.name = "the animal no name";
  11.         }
  12.         public Animal(string name) {
  13.             this.name = name;
  14.         }
  15.         public void Feed() => Console.WriteLine($"{name} has been fed");
  16.     }
  17. //子类继承自Animal
  18.  class Chicken:Animal
  19.     {
  20.         public Chicken(string name) : base(name) { }
  21.         public void LayEgg() => Console.WriteLine($"{Name} has been Lay an Egg");
  22.     } 
  23. //子类继承自Animal
  24. class Cow:Animal
  25.     {
  26.         public Cow(string name) : base(name) { }
  27.         public void Milk() => Console.WriteLine($"{Name}has been Milked");
  28.     } 

 //IDictionary通过继承DictionaryBase实现自定义字典

  1. public class Animals : DictionaryBase
  2.     {     
  3.         public Animals() { }
  4.         public void Add(string index, Animal ani)//Add()方法通过添加key----value键值对添加
  5.         {
  6.             Dictionary.Add(index, ani);
  7.         }
  8.         public void Remove(string index)//Remove()方法通过索引删除
  9.         {
  10.             Dictionary.Remove(index);
  11.         }
  12.         public Animal this[int i]//索引器和this一起使用,通过索引器可以以Animal[0]的方式访问
  13.         {
  14.             get { return (Animal)Dictionary[i]; }
  15.             set { Dictionary[i] = value; }
  16.         }
  17.     }

//Main()  方法

  1. staticvoidMain(string[] args){
  2.             Animal animals = new Cow("ss");
  3.             Animals aniDictionary = new Animals();//自定义字典对象
  4.             aniDictionary.Add("001", animals);//添加key ---value对象
  5.             aniDictionary.Add("002", new Cow("lily"));
  6.             aniDictionary.Add("003", new Chicken("dark"));
  7.             foreach (DictionaryEntry ani in aniDictionary)//foreach循环输出
  8.             {//通过ani.key和ani.value来访问
  9.                 Console.WriteLine(ani.Key.ToString() + ":::" + ((Animal)ani.Value).Name.ToString());
  10.             }
  11.             Console.WriteLine();
  12.             aniDictionary.Remove("001");//删除,通过索引删除
  13.             foreach (DictionaryEntry it in aniDictionary)
  14.             {
  15.                 Console.WriteLine(it.Key.ToString() + "|||" + ((Animal)it.Value).Name.ToString());
  16.             }
  17.             Console.WriteLine();
  18. }
  19.  
     
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值