• Linq操作非泛型集合


    我们都知道,Linq能查询泛型集合,确切的说是:LINQ能实现查询泛型对象或者实现了IEnumerable。但是,很遗憾的是诸如ArrayList这样的非泛型集合并没有实现IEnumerable。那咋办呢?总不能把这么绚丽的Linq技术对非泛型关上大门把!~其实,方法还是有的。

    场景还原:

    定义一个car的类:

    class Car
      {
        public int CurrentSpeed;
        public int MaxSpeed;
        public string PetName;
      }

    对ArrayList 装载一些数据:

    ArrayList cars = new ArrayList();
          cars.Add(new Car { CurrentSpeed = 21, MaxSpeed = 2, PetName = "aa" });
          cars.Add(new Car { CurrentSpeed = 212, MaxSpeed = 22, PetName = "aa1" });

    如果强制使用Linq操作,会报错:

    解决方法如下:

    方法一。用Cast<T> 关键字

    var myAllCars = cars.Cast<Car>();
          var result = from c in myAllCars
                       where c.MaxSpeed > 10
                       select c;

    方法二。使用OfType<T>

    var myAllCars = cars.OfType<Car>();
          var result = from c in myAllCars
                       where c.MaxSpeed > 10
                       select c;

     OfType 除了上面转换非泛型之外,还有一个功能是刷选数据的功能。

    这个很简单

  • 相关阅读:
    随机数
    ASP .NET下的301重定向如何做
    网站外部链接建设方案
    解析ASP.NET WebForm和Mvc开发的区别
    委托、匿名委托和lambda表达式
    图片垂直居中
    jquery函数写法
    [转]函数方法常用的动词
    CSS Hack
    富文本编辑器
  • 原文地址:https://www.cnblogs.com/damonlan/p/3214610.html
Copyright © 2020-2023  润新知