zoukankan      html  css  js  c++  java
  • 整理一下List<T>的常用方法

    前段时间一个项目用的是VS2005开发的,没有Linq没有lambda表达式,所以狠狠的把List<T>的一些方法用了一遍,现整理一下。
    1. 在泛型集合中查询符合条件的第一条数据

    1 private static string IDtoFind = "bk109";
    2 private static List<Book> Books = new List<Book>();
    3 Book result = Books.Find(
    4             delegate(Book bk)
    5             {
    6                 return bk.ID == IDtoFind;
    7             }
    8             );

    其中Find的参数是一个委托,用来指向一个指定查询方式的方法,为省事直接写个匿名方法即可,当然。NET Framework 3.5 以上的话可以用lambda表达式。
    2. 搜索与指定条件相匹配的元素,并返回整个 List<T> 中的最后一个匹配元素。与Find()类似。

    1 result = Books.FindLast(
    2             delegate(Book bk)
    3             {
    4                 DateTime year2001 = new DateTime(2001,01,01);
    5                 return bk.Publish_date < year2001;
    6             });

    3. 检索与指定谓词定义的条件匹配的所有元素,这次返回的是符合条件的元素的List<T>

    List<Book> results = Books.FindAll(FindComputer);

    4. 实现升序或降序的排列

    1 class Pet
    2 {
    3     public string Name { get; set; }
    4     public int Age { get; set; }
    5 }
     1 List<Pet> pets =new List<Pet>() { new Pet { Name="Barley", Age=8 },
     2                new Pet { Name="Boots", Age=4 },
     3                new Pet { Name="Whiskers", Age=1 } };
     4 //升序
     5 IEnumerable<Pet> query = pets.OrderBy(
     6             delegate (Pet pet)
     7             {return pet.Age}
     8             );
     9 //降序
    10 IEnumerable<Pet> query = pets.OrderByDescending(
    11             delegate (Pet pet)
    12             {return pet.Age}
    13             );

    5. 实现伪分页

    IEnumerable<Pet> query=pets.Skip(2).Take(1);

    Skip的意思是跳过前面的数量,Take的意思是获取的数量。

  • 相关阅读:
    【uniapp】改善中大型uniapp小程序项目开发体验
    vite试玩:老项目启动从6分钟到秒开
    修剪AST树减少webapck打包尺寸
    librispeech数据集下载
    语音识别性能评估方法
    2021.12.11 物联网考试
    2021.12.15 课程总结+加分项
    2021.12.9 观影大数据分析
    2021.12.8 Docker服务
    2021.12.10 阿里云服务器创建
  • 原文地址:https://www.cnblogs.com/headwolf/p/3135670.html
Copyright © 2011-2022 走看看