• 整理一下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的意思是获取的数量。

  • 相关阅读:
    python下编译py成pyc和pyo
    session_id小问题大影响
    python get,post提交表单
    vmstat命令列出的属性详解
    SGU 223 Little Kings
    POJ 3233 Matrix Power Series
    HDU 2604 Queuing
    HDU 2256 Problem of Precision
    SGU 224 Little Queens
    HDU 2276 Kiki & Little Kiki 2
  • 原文地址:https://www.cnblogs.com/headwolf/p/3135670.html
Copyright © 2020-2023  润新知