• C#通过 “枚举数支持在指定类型的集合上进行简单迭代” 的概念获取List的一种方式


     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 

  • 相关阅读:
    「CF505E」 Mr. Kitayuta vs. Bamboos
    「CF1438D」 Powerful Ksenia
    Kruskal重构树
    20210528模拟赛总结
    20210527模拟赛总结
    20210526模拟赛总结
    20210525模拟赛总结
    CF #722 Div2题解
    洛谷P3652 csh和zzy的战争 题解
    [清华集训2012]模积和 题解
  • 原文地址:https://www.cnblogs.com/luguoshuai/p/9952231.html
Copyright © 2020-2023  润新知