Linq入门演练---(2)lambda表达式
今天大家一同学习下lambda表达式, lambda表达式使用起来更方便, lambda表达式其实是一个匿名函数,使用的运算符为=>
语法: (参数)=》表达式
如果只有一个参数,可以不使用括号,多个参数用逗号隔开.
(x,y)=>x==y
如果没有参数,使用空括号表示
()=>表达式
1.where()方法
代码:
- privatevoid button1_Click(object sender, EventArgs e)
- {
- //查询大于10的元素
- string str = "";
- int[] arrTwo = { 10, 4, 6, 8, 90, 3 };
- var query = arrTwo.Where(i=>i>=10);
- foreach (var item in query)
- {
- str += item.ToString() + "\r\n";
- }
- Console.Write(str);
- }
private void button1_Click(object sender, EventArgs e)
{
//查询大于10的元素
string str = "";
int[] arrTwo = { 10, 4, 6, 8, 90, 3 };
var query = arrTwo.Where(i=>i>=10);
foreach (var item in query)
{
str += item.ToString() + "\r\n";
}
Console.Write(str);
}
结果
10 90
2. OrderBy()排序
代码:按升序排列
- //排序
- int[] arrTwo = { 10, 4, 6, 8, 90, 3 };
- var query = arrTwo.OrderBy(i =>i);
- foreach (var item in query)
- {
- Console.WriteLine(item.ToString());
- }
//排序
int[] arrTwo = { 10, 4, 6, 8, 90, 3 };
var query = arrTwo.OrderBy(i =>i);
foreach (var item in query)
{
Console.WriteLine(item.ToString());
}
结果:
- 3
- 4
- 6
- 8
- 10
- 90
3
4
6
8
10
90
如果是想按降序排列,使用OrderByDescending方法!
3.Skip()和SkipWhile()
Skip()用来跳过指定数目的元素,
SkipWhile是根据一定的条件跳过满足条件的元素,但是,SkipWhile只跳过第一个满足条件的元素,并不是跳过所有满足条件的元素,
如果下一个元素不满足条件,则停止向下执行
代码
- //跳过前3个元素
- int[] arrTwo = { 10, 4, 6, 8, 90, 3 };
- var query = arrTwo.Skip(3);
- Console.WriteLine("skip用法");
- foreach (var item in query)
- {
- Console.WriteLine(item.ToString());
- }
- Console.WriteLine("skipwhile用法");
- var query1 = arrTwo.SkipWhile(i=>i>6);
- foreach (var item in query1)
- {
- Console.WriteLine(item.ToString());
- }
//跳过前3个元素
int[] arrTwo = { 10, 4, 6, 8, 90, 3 };
var query = arrTwo.Skip(3);
Console.WriteLine("skip用法");
foreach (var item in query)
{
Console.WriteLine(item.ToString());
} Console.WriteLine("skipwhile用法");
var query1 = arrTwo.SkipWhile(i=>i>6);
foreach (var item in query1)
{
Console.WriteLine(item.ToString());
}
结果:
- skip用法
- 8
- 90
- 3
- skipwhile用法
- 4
- 6
- 8
- 90
- 3
skip用法
8
90
3
skipwhile用法
4
6
8
90
3
4.Take()和TakeWhile()
Take()从集合中提取指定书目的元素
TakeWhile从集合中第一个元素开始,如果为true,继续提取下一个元素,如果为FALSE,则停止向下执行。
如果第一个元素不满足条件,则不往下执行。
代码:
- //提取元素
- int[] arrTwo = { 10,20, 4, 6, 8, 90, 3 };
- var query = arrTwo.Take(3);
- Console.WriteLine("take用法");
- foreach (var item in query)
- {
- Console.WriteLine(item.ToString());
- }
- //只提取大于8的元素
- var query2 = arrTwo.TakeWhile(i=>i>8);
- Console.WriteLine("TakeWhile用法");
- foreach (var item in query2)
- {
- Console.WriteLine(item.ToString());
- }
//提取元素
int[] arrTwo = { 10,20, 4, 6, 8, 90, 3 };
var query = arrTwo.Take(3);
Console.WriteLine("take用法");
foreach (var item in query)
{
Console.WriteLine(item.ToString());
}
//只提取大于8的元素
var query2 = arrTwo.TakeWhile(i=>i>8);
Console.WriteLine("TakeWhile用法");
foreach (var item in query2)
{
Console.WriteLine(item.ToString());
}
结果:
- take用法
- 10
- 20
- 4
- TakeWhile用法
- 10
- 20
take用法
10
20
4
TakeWhile用法
10
20
5.Distinct()消除集合中重复的元素
代码:
- privatevoid button5_Click(object sender, EventArgs e)
- {
- //消除集合中的元素
- int[] arrTwo = { 10, 20, 4, 6, 8, 90, 3,10,6 };
- var query = arrTwo.Distinct();
- foreach (var item in query)
- {
- Console.WriteLine(item.ToString());
- }
- }
private void button5_Click(object sender, EventArgs e)
{
//消除集合中的元素
int[] arrTwo = { 10, 20, 4, 6, 8, 90, 3,10,6 };
var query = arrTwo.Distinct();
foreach (var item in query)
{
Console.WriteLine(item.ToString());
}
}
6. Concat()连接两个集合,把两个集合中的数据放置到一个新的对象中
7. union用来求两个集合的并集
intersect用来求两个集合的交集
except用来求两个集合的差集
Linq入门演练---(2)lambda表达式的更多相关文章
- LINQ教程三:Lambda表达式解剖
C#3.0(.NET3.5)中引入了Lambda表达式和LINQ.Lambda表达式是使用一些特殊语法表示匿名方法的较短方法. 最基本的Lambda表达式语法如下: (参数列表)=>{方法体} ...
- 30分钟入门Java8之lambda表达式
前言 Google在今年发布Android N开发者预览版,一并宣布开始支持Java 8.我们终于能在Android开发中使用到Java8的一些语言特性了.目前支持: 默认方法 lambda表达式 多 ...
- Linq入门演练---(1)基本用法-分组,排序,内连接
这一节大家共同学习下LINQ的基本用法,主要包括LINQ的分组,排序,和内外连接. 1.分组 基本语法: group element by key element 表示查询结果返回的元素,key表示 ...
- linq本质扩展方法+lambda表达式
string[] names = { "aa","bb","cc","dd"}; /* IEnumerable<s ...
- Jquery实现对Array数组实现类似Linq的Lambda表达式的Where方法筛选
平时使用Linq,习惯了Lambda表达式,用着非常顺手,奈何在Jquery里面不能这样用,只能循环一个个判断.趁空闲时间找了找,自己写了这样的扩展方法.目前写出了三种方案,没有比较性能,觉得都可以用 ...
- C# Lambda表达式
C# Lambda表达式 Lambda表达式 "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量.它可以包含表达式 ...
- C#中的Lambda表达式和表达式树
在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化.但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响.C# 3.0中出现的Lambda表达式在 ...
- Lambda表达式和表达式树
在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化.但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响.C# 3.0中出现的Lambda表达式在 ...
- Lambda表达式 之 C#
Lambda表达式 "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量.它可以包含表达式和语句,并且可用于创建委托 ...
随机推荐
- Maven使用-利用Maven引入相关包(Struts2)
根据上一篇的项目搭建,接下来引入需要使用Struts2相关包 1,如何利用maven往项目中引入包? maven就像一个导包助手一样,让它知道去哪里拿什么,他就会自动完成需要的包的搬运工作. (1), ...
- 高榕资本宾悦:未使用的企业家Testin云测试服务类故障
高榕资本岳斌:创业者未使用Testin云測试服务属不合格 2014/10/09 · Testin · 开发人员訪谈 Testin云測与工信部等联合承办的ICT中国.2014高层论坛之移动开发人员分论坛 ...
- shell 脚本运算符
1.数值 格式: test "num1" opr "num2" [ "num1" opr "num2" ] opr 取值 ...
- 基于nodejs 的微信 JS-SDK 简单应用
2015 是 Hybrid App 崛起之年 ,Web App 和 Native App 各有其强大之处,也有着致命的缺点,人们一边追求native流畅的用户体验,一边同时期望产品能够快速的迭代更新, ...
- android 更新实现自己主动
其主要原理是: 在应用程序启动.取server在版本 , 以下这个是获取当前应用的版本号信息 private void getCurVersion() { try { PackageInfo pInf ...
- 【Hibernate学习】 ——ORM(三)
前面几种关系我们曾经就常常常使用,对于继承我们也并不陌生,常常接触的类与类之间的继承用extendskeyword,那么在表与表的关系中怎样表示呢?以下我们来讲继承映射. 继承有三种实现的策略,单表继 ...
- linux命令之删除
linux删除文件夹非常easy,非常多人还是习惯用rmdir,只是一旦文件夹非空,就陷入深深的苦恼之中,如今使用rm -rf命令就可以. 直接rm就能够了,只是要加两个參数-rf 即:rm -r ...
- Sphinx/Coreseek 4.1 跑 buildconf.sh 一个错误,无法生成configure档
安装前 coorseek 什么时候,遇到一些错误.该官方网站无法看到的解决方案,终于 google 在大牛的博客评论区找到一个解决方案.突然跑到他的膝盖介绍~~ 这里整理是为了方便一些人发现,墙毕竟让 ...
- tomcat配置sqlserver数据库
1. 首先确保Tomcat安装文件夹中的\common\lib(对于Tomcat5.5)或者是\lib(Tomcat6.0)文件夹中已包括JDBC连接数据库所必须的三个.jar文件(msbase.ja ...
- 开源GUI-Microwindows之程序入口分析
**************************************************************************************************** ...