zoukankan      html  css  js  c++  java
  • Linq和非泛型集合

    ///定义Car类型
     public class Car
        {
           public string PetName = string.Empty;
           public string Color = string.Empty;
           public int Speed;
           public string Make = string.Empty;
        }
     
    ArrayList myCars = new ArrayList() { new Car{PetName="Henry",Color="Silver",Speed=100,Make="BMW"}, new Car{ PetName="Daisy",Color="Tan",Speed=98,Make="BMW"}, new Car{PetName="Mary",Color="Black",Speed=55,Make="VW"}, new Car{ PetName="Clunker",Color="Rust",Speed=5,Make="Yugo"}, new Car{ PetName="Melvin",Color="Whiter",Speed=43,Make="Ford"}}; //linq的查询运算是设计用于任何实现了IEnmerabler<T>接口的类型的 //System.Collections中传统的非泛型集合并没有实现IEnumberable<T>接口,所以不能直接使用linq //但是我们可以用泛型Enumberable.OfType<T>()方法来对包含在这些非泛型集合里的数据进行迭代操作。 IEnumerable<Car> myCarEnmu=myCars.OfType<Car>(); var resuit = from q in myCarEnmu where q.Speed > 55 select q; ///传统的集合不能直接操作。 var wrog=from m in myCars //报错,未能找到ArrayList中where. where m.//这个地方点不出来属性
    ///利用OfType<T>()筛选数据
                ///非泛型集合类型可以包含任何数据项,因为这些容器类的成员类型是Object,
                ///ofType<T>()可以过滤出那些类型不同于迭代操作中所指定的类型T的元素
                ArrayList myStuff = new ArrayList();
                myStuff.AddRange(new object[] { 10,400,8,false,new Car(),"string Data"});
                //过滤出不是Int类型的
                IEnumerable<int> myInts = myStuff.OfType<int>();
                foreach (var itme in myInts)
                {
                    Console.WriteLine(itme);
                }
                Console.ReadKey();
  • 相关阅读:
    带返回值的多线程
    ORA-12516 "TNS监听程序找不到符合协议堆栈要求的可用处理程序" 解决方案
    Java后端WebSocket的Tomcat实现
    Jackson将对象转换为json字符串时,设置默认的时间格式
    java构造器和构建器
    java静态工厂
    离散-理解只有 才
    数据结构之链式表
    数据结构之顺序线性表
    期末作业验收
  • 原文地址:https://www.cnblogs.com/xinyebs/p/3116707.html
Copyright © 2011-2022 走看看