在C#中,如何使用不同类型的对象创建IEnumerable< T>类
例如:
Public class Animals { Public class dog{} Public class cat{} Public class sheep{} }
我想做一些事情:
Foreach(var animal in Animals) { Print animal.nameType }
解决方法
另一种方法,如果你想要一个命名集合(而不是使用List< T>):
// animal classes public class Animal { public String Name { get; set; } public Animal() : this("Unknown") {} public Animal(String name) { this.Name = name; } } public class Dog : Animal { public Dog() { this.Name = "Dog"; } } public class Cat : Animal { public Cat() { this.Name = "Cat"; } } // animal collection public class Animals : Collection<Animal> { }
执行:
void Main() { // establish a list of animals and populate it Animals animals = new Animals(); animals.Add(new Animal()); animals.Add(new Dog()); animals.Add(new Cat()); animals.Add(new Animal("Cheetah")); // iterate over these animals foreach (var animal in animals) { Console.WriteLine(animal.Name); } }
在这里,你延伸了Collection<T>
的基础,它实现了IEnumerable< T> (所以foreach和其他迭代方法可以从中工作).