假如我们有一个列表
要查找 CountyId == 2 对应的 County,方法有很多。
一、最传统方法:
二、稍微简单点的方法:
三、直接委托的写法:
真正简单的方法来了。
- 如果不存在,返回 null。
- 如果有多个,返回第 1 个。
四、我们也可以换成 Lambda 表达式,更简洁:
这种方式也是委托写法,只是所用的表达式语法不同:一个是传统语法,一个是 Lambda 语法。
- 上面两种写法都可以,第一种适用于长代码,第二种适用于短代码。
- 如果不存在,返回 null。注意,我们这个是类才是这样,如果是 List<int> 则找不到返回 0,如果是 List<int?> 则找不到返回 null,如果是 List<DateTime> 则找不到返回 0001-01-01 日期。可以参见:http://www.benshu.com/c/2010/12/HWCB70F26T40L25P.asp
- 如果有多个,返回第 1 个。
五、Linq 写法:
关于 Linq:
- 一是要用 var。
- 二是 from 中有个 in。
- 三是 where 中是 C# 表达式(不是 SQL)。
- 四是 select 在最后。
Linq 写法在当前需求中并不简洁,但是它可以实现更复杂的功能。
相关阅读
- LINQ to SQL 学习笔记
- 用 LINQ 快速把一个列表类中的 id 取出来