zoukankan      html  css  js  c++  java
  • C# List<> 泛型中遍历不同类型

    List <Person> person = new List <Person>(); 
    Person p1 
    = new Person("张三"26, Gender.Male, "看书"); 
    Person p2 
    = new Person("张四"55, Gender.Male, "钓鱼"); 


    List 
    <Student> stu = new List <Student>(); 
    Student s1 
    = new Student("李四"26, Gender.Male, "电影""S2T11"); 
    Student s2 
    = new Student("李五"20, Gender.Male, "电脑""S2T11"); 


    List 
    <Teacher> tch = new List <Teacher>(); 
    Teacher t1 
    = new Teacher("王五"26, Gender.Male, "音乐""S1,S2,Y2"); 
    Teacher t2 
    = new Teacher("王六"30, Gender.Male, "音乐""S1,S2"); 

    person.Add(p1); 
    person.Add(p2); 
    person.Add(s1); 
    person.Add(s2); 
    person.Add(t1); 
    person.Add(t2); 
    /////////////用for遍历出Student类型和Teacher类型//////////////////
    for (int i = 0; i < person.Count; i++

    if (person[i] is Student) 

    ((Student)person[i]).SayHi(); 

    else if (person[i] is Teacher) 

    ((Teacher)person[i]).SayHi(); 




    ========================================
    用foreach来遍历出Student类型和Teacher类型   替换上面for的遍历
    ========================================


    基类 Person  子类 Student Teacher


    static void Main(string[] args) 
            { 
              
                List 
    <Person> person = new List <Person>(); 
                Person p1 
    = new Person("张三"26, Gender.Male, "看书"); 
                Person p2 
    = new Person("张四"55, Gender.Male, "钓鱼"); 


                Person s1 
    = new Student("李四"26, Gender.Male, "电影""S2T11"); 
                Person s2 
    = new Student("李五"20, Gender.Male, "电脑""S2T11"); 


                Person t1 
    = new Teacher("王五"26, Gender.Male, "音乐""S1,S2,Y2"); 
                Person t2 
    = new Teacher("王六"30, Gender.Male, "音乐""S1,S2"); 

                person.Add(p1); 
                person.Add(p2); 
                person.Add(s1); 
                person.Add(s2); 
                person.Add(t1); 
                person.Add(t2); 

                
    //for (int i = 0; i < person.Count; i++) 
                
    //
                
    //    if (person[i] is Student) 
                
    //    { 
                
    //        ((Student)person[i]).SayHi(); 
                
    //    } 
                
    //    else if (person[i] is Teacher) 
                
    //    { 
                
    //        ((Teacher)person[i]).SayHi(); 
                
    //    } 
                
    //
                foreach (Person p in person) 
                { 
                    
    if (p is Student) 
                    { 
                        p.SayHi(); 
                    } 
                    
    else if (p is Teacher) 
                    { 
                        p.SayHi(); 
                    } 
                } 


              Console.ReadLine(); 
            }


    或者:这样。。。。。。。。。。

     if (p is Student)
                    {
                        p.SayHi();
                    }
                    
    else if (p is Teacher)
                    {
                        p.SayHi();
                    } 

  • 相关阅读:
    用ProFTPD构建FTP服务器
    Js数组里剔除指定的元素(不是指定的位置)
    JS跨域设置和取Cookie
    ajax test
    js下判断 iframe 是否加载完成的完美方法
    使用div模拟出frameset效果
    js中call与apply用法
    phpstorm 快捷键
    JQuery中 数组与字符串(过滤,排序,拆分,合并)
    基于 Apache 在本地配置多个虚拟主机
  • 原文地址:https://www.cnblogs.com/Fooo/p/1370768.html
Copyright © 2011-2022 走看看