1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 5 namespace myMethod 6 { 7 class Animal 8 { 9 public string typeName = ""; 10 public Animal(string typeName) 11 { 12 this.typeName = typeName; 13 } 14 } 15 16 class Person : Animal 17 { 18 public Person(string typeName) 19 : base(typeName) 20 { 21 22 } 23 } 24 25 class Cat : Animal 26 { 27 public Cat(string typeName) 28 : base(typeName) 29 { 30 31 } 32 } 33 34 class lgs 35 { 36 static void Main() 37 { 38 List<Animal> list = GetAnimlList(); 39 40 var itor = list.GetEnumerator(); 41 while (itor.MoveNext()) 42 { 43 Console.WriteLine(itor.Current.typeName); 44 } 45 46 Console.ReadKey(); 47 } 48 49 static List<Animal> GetAnimlList() 50 { 51 IEnumerable<Animal> config = null; 52 config = GetAnimalConfig(); 53 return null == config ? null : config.ToList(); //改方法为Enumerable类的一个扩展方法,所在的命名空间:System.Linq 54 } 55 56 //注意是泛型枚举,不是List, 57 static IEnumerable<Animal> GetAnimalConfig() 58 { 59 yield return new Person("Type_Person"); 60 yield return new Cat("Type_Cat"); 61 } 62 } 63 }
主要需要注意的是行:57 - 61 、 49 - 53