Mega Code Archive

 
Categories / C# / Collections Data Structure
 

Extends DictionaryBase

using System; using System.Collections; using System.Collections.Generic; using System.Text; public abstract class Animal {     protected string name;     public string Name {         get {             return name;         }         set {             name = value;         }     }     public Animal() {         name = "The animal with no name";     }     public Animal(string newName) {         name = newName;     }     public void Feed() {         Console.WriteLine("{0} has been fed.", name);     } } public class Chicken : Animal {     public void LayEgg() {         Console.WriteLine("{0} has laid an egg.", name);     }     public Chicken(string newName)         : base(newName) {     } } public class Cow : Animal {     public void Milk() {         Console.WriteLine("{0} has been milked.", name);     }     public Cow(string newName)         : base(newName) {     } } public class Animals : DictionaryBase {     public void Add(string newID, Animal newAnimal) {         Dictionary.Add(newID, newAnimal);     }     public void Remove(string animalID) {         Dictionary.Remove(animalID);     }     public Animals() {     }     public new IEnumerator GetEnumerator() {         foreach (object animal in Dictionary.Values)             yield return (Animal)animal;     }     public Animal this[string animalID] {         get {             return (Animal)Dictionary[animalID];         }         set {             Dictionary[animalID] = value;         }     } } class Program {     static void Main(string[] args) {         Animals animalCollection = new Animals();         animalCollection.Add("A", new Cow("A"));         animalCollection.Add("B", new Chicken("B"));         foreach (Animal myAnimal in animalCollection) {             Console.WriteLine(myAnimal.ToString() + myAnimal.Name);         }     } }