C#中的Where和Lambda表达式
1
2
3
4
5
6
7
8
9
10
11
|
List< string > listString = new List< string >(); listString.Add( "abc" ); listString.Add( "456" ); listString.Add( "bbb" ); listString.Add( "iiiiiiii" ); var retList = listString.Where(u => u.Length > 4); foreach ( string str in retList) { Console.WriteLine( "str = {0}" , str); } |
之前当看到c#里有Where的时候,总是不明觉厉,也影响了阅读代码的流畅性。
这里的Where是Linq的一种查询语法,而u => u.Length > 4则是一个lambda正则表达式。
Where语法格式:
public static IEnumerable<TSource> Where<TSource>(
this IEnumerable<TSource> source,
Func<TSource, bool> predicate
)
lambda正则表达式:
表达式位于=>运算符的右侧 (input parameters)=>expression。实际上是一个匿名委托。比如:
1
2
3
4
5
6
7
8
9
|
delegate int add( int i); static void Main( string [] args) { add myDelegate = x => x + 5; int ret = myDelegate(5); Console.WriteLine( "ret = {0}" , ret); Console.ReadLine(); } |
文章开头代码中listString.Where(u => u.Length > 4);里面的u => u.Length > 4实际上就是一个匿名委托,用这个匿名委托去过滤Source里面的每一个元素,剩下的返回IEnumerable<TSource>。
C#中的Where和Lambda表达式的更多相关文章
- Android Stutio中使用java8的Lambda表达式
转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51532028 本文出自:[openXu的博客] 目录: 为什么要使用Lambda表达式 让A ...
- C# 中使用Linq和Lambda表达式对List<T>进行排序
C#中List<T>排序的两种方法 List<Student> stu = (List<Student>)Session["StudentList&quo ...
- Qt中使用匿名函数lambda表达式
一.为什么要使用匿名函数lamdba 首先,lambda表达式可以使代码变得简单,C++中,一个lambda表达式表示一个可调用的代码单元.如代码: #include <QCoreApplica ...
- 在Android中引入Java8的lambda表达式
我用的是retrolambda这个插件,下面来说下如何添加它. 项目地址:https://github.com/evant/gradle-retrolambda 在根项目的build.gradle中添 ...
- C#中匿名委托以及Lambda表达式的学习笔记
一. C#从1.0到4.0, 随着Linq,泛型的支持,代码越来越简单优雅 , , , , , , , , , }; IEnumerable< select n; newNums = newNu ...
- Java语言与JVM中的Lambda表达式全解
Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法. ...
- java 8 中lambda表达式学习
转自 http://blog.csdn.net/renfufei/article/details/24600507 http://www.jdon.com/idea/java/10-example-o ...
- Java中Lambda表达式的使用
简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因 ...
- Java中Lambda表达式的使用(转)
https://www.cnblogs.com/franson-2016/p/5593080.html 简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖" ...
随机推荐
- QT5.5.0版本添加icon图标步骤
1.制作icon图标文件 可以进入这个网站在线制作:http://www.ico.la/ 2.创建资源文件:qrc文件 接着 添加2两项,先点击prefix,然后添加文件--->图标路径 3.可 ...
- Python定时任务框架APScheduler 3.0.3 Cron示例
APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务.基 ...
- storm集群搭建
安装环境: 虚拟操作系统:centOS7 64位 2台 IP地址为192.168.1.10 192.168.1.11 内存:1GB内存 zookeeper版本 :3.4.6 Storm版本:0. ...
- 【2016-10-13】【坚持学习】【Day4】【virtual 虚函数】
定义一个基类,有一个虚函数 定义三个子类,分别继承,重写,New,这个虚函数 abstract class Test { public virtual void Prinf() { Console ...
- Svn Patch 中文乱码
关于Patch svn打patch的介绍:巧用svn create patch(打补丁)方案解决定制版需求 svn创建patch 1.在SVN的提交列表中,右键选择“创建补丁” 2.选择保存位置,保存 ...
- NOIP模拟赛 最大匹配
问题描述 mhy12345学习了二分图匹配,二分图是一种特殊的图,其中的点可以分到两个集合中,使得相同的集合中的点两两没有连边. 图的“匹配”是指这个图的一个边集,里面的边两两不存在公共端点. ...
- ef操作类
基于Hi博客的类库 20160811 using Model; using System; using System.Collections.Generic; using System.Data.En ...
- HTML 学习笔记(列表)
HTML 列表 html中列表使用标签<ul>和 <ol>来实现,不同的行用标签<li>来实现 <li>中包含的就是列表每行的内容.列表包含有序列表&l ...
- checkbox与jq<转>
题:经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法获取其真实值,下面介绍这两种方法的区别: 1.通过prop方法获取checked属性, ...
- Centos5.8 安装openvpn
安装openssl 和 openssl-devel, 建议使用最新版本, 编译安装 yum install gcc-c++ wget http://www.openssl.org/source/ope ...