抛弃传统,用委托、Lambda、Linq 取 List 中的项

作者:vkvi 来源:千一网络(原创) 日期:2017-2-20

假如我们有一个列表

要查找 CountyId == 2 对应的 County,方法有很多。

一、最传统方法:

二、稍微简单点的方法:

三、直接委托的写法:

真正简单的方法来了。

  • 如果不存在,返回 null。
  • 如果有多个,返回第 1 个。

四、我们也可以换成 Lambda 表达式,更简洁:

这种方式也是委托写法,只是所用的表达式语法不同:一个是传统语法,一个是 Lambda 语法。

  • 上面两种写法都可以,第一种适用于长代码,第二种适用于短代码。
  • 如果不存在,返回 null。注意,我们这个是类才是这样,如果是 List<int> 则找不到返回 0,如果是 List<int?> 则找不到返回 null,如果是 List<DateTime> 则找不到返回 0001-01-01 日期。可以参见:http://www.cftea.com/c/2010/12/HWCB70F26T40L25P.asp
  • 如果有多个,返回第 1 个。

五、Linq 写法:

关于 Linq:

  • 一是要用 var。
  • 二是 from 中有个 in。
  • 三是 where 中是 C# 表达式(不是 SQL)。
  • 四是 select 在最后。

Linq 写法在当前需求中并不简洁,但是它可以实现更复杂的功能。

相关阅读

你前面那位网友看了:Android Studio 升级 3.0 后 aapt2 异常、不认识 intent-filter、.dex exceed 64K

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他