整理一下List<T>的常用方法

本文回顾了在.NET Framework 3.5之前的环境中,使用List<T>进行数据操作的多种方法,包括查找、排序、分页等,特别针对没有Linq和lambda表达式的限制下,如何利用委托和匿名方法实现数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间一个项目用的是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的意思是获取的数量。

转载于:https://www.cnblogs.com/headwolf/archive/2013/06/14/3135670.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值