没有合适的资源?快使用搜索试试~ 我知道了~
linq的基础入门,详细的介绍了linq的使用方法
需积分: 9 3 下载量 167 浏览量
2010-05-17
10:29:09
上传
评论
收藏 13KB TXT 举报
温馨提示
试读
15页
对新学linq的学员很有帮助,详细介绍了linq的使用方法
资源推荐
资源详情
资源评论
<!--[if !supportLists]-->1 <!--[endif]-->LinQ初体验:
<!--[if !supportLists]-->1.1 <!--[endif]-->Aaa
int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };
var even = numbers
.Where(p => p % 2 == 0)
.Select(p => p)
.OrderByDescending(p => p);
<!--[if !supportLists]-->2 <!--[endif]-->Lambda 表达式
ProcessString p = input => input.ToLower();
foreach (string name in foxRiver8)
{
Console.WriteLine( p ( name ) ) ;
}
在C#里,一个lambda表达式在句法上是写成一个参数列表,随后是 => 符号,随后是表达式在调用时要运算的表达式或者语句块:
<!--[if !supportLists]-->1.1 <!--[endif]-->Aaa
int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };
var even = numbers
.Where(p => p % 2 == 0)
.Select(p => p)
.OrderByDescending(p => p);
<!--[if !supportLists]-->2 <!--[endif]-->Lambda 表达式
ProcessString p = input => input.ToLower();
foreach (string name in foxRiver8)
{
Console.WriteLine( p ( name ) ) ;
}
在C#里,一个lambda表达式在句法上是写成一个参数列表,随后是 => 符号,随后是表达式在调用时要运算的表达式或者语句块:
params => expression
所以,当我们编写这样的lambda表达式时:
p => p.LastName == "Guthrie"
我们是想表示,我们在定义的Lambda接受一个参数p,要运行的代码表达式返回p.LastName的值是否等于“Guthrie”。 我们将参数命名为p是不相干的,我也可以很容易地将其命名为o,x,foo,或者我想要的任何名字。
不象匿名方法要求参数类型是明确地指明的,Lambda表达式允许省略参数类型,而允许它们根据用法来推断出类型。譬如,当我编写 p=>p.LastName == "Guthrie" 这个lambda表达式时,编译器推断出p参数属于Person类型,因为当前的Where扩展方法的对象是个范型的List< Person>集合。
Lambda参数的类型可以在编译时和被Visual Studio的intellisense引擎推断出来,这意味着在编写lambda时你将获得完全的intellisense 和编译时检查。譬如,注意当我在下面健入 p. 时,Visual Studio Orcas是如何提供intellisense完成的,因为它知道 p 是 Person类型:
<!--[if !vml]--><!--[endif]-->
注: 假如你要给一个Lambda表达式明确地声明参数的类型的话,你可以在Lambda参数表里的参数名字前声明参数类型,象这样:
<!--[if !vml]--><!--[endif]-->
<!--[if !supportLists]-->3 <!--[endif]-->Lambda表达式初步
<!--[if !supportLists]-->3.1 <!--[endif]-->A
delegate string ProcessStr(string input);
protected void Page_Load(object sender, EventArgs e)
{
var foxRiver = new string[] { "Mike", "Smith", "Tom", "Jack" };
所以,当我们编写这样的lambda表达式时:
p => p.LastName == "Guthrie"
我们是想表示,我们在定义的Lambda接受一个参数p,要运行的代码表达式返回p.LastName的值是否等于“Guthrie”。 我们将参数命名为p是不相干的,我也可以很容易地将其命名为o,x,foo,或者我想要的任何名字。
不象匿名方法要求参数类型是明确地指明的,Lambda表达式允许省略参数类型,而允许它们根据用法来推断出类型。譬如,当我编写 p=>p.LastName == "Guthrie" 这个lambda表达式时,编译器推断出p参数属于Person类型,因为当前的Where扩展方法的对象是个范型的List< Person>集合。
Lambda参数的类型可以在编译时和被Visual Studio的intellisense引擎推断出来,这意味着在编写lambda时你将获得完全的intellisense 和编译时检查。譬如,注意当我在下面健入 p. 时,Visual Studio Orcas是如何提供intellisense完成的,因为它知道 p 是 Person类型:
<!--[if !vml]--><!--[endif]-->
注: 假如你要给一个Lambda表达式明确地声明参数的类型的话,你可以在Lambda参数表里的参数名字前声明参数类型,象这样:
<!--[if !vml]--><!--[endif]-->
<!--[if !supportLists]-->3 <!--[endif]-->Lambda表达式初步
<!--[if !supportLists]-->3.1 <!--[endif]-->A
delegate string ProcessStr(string input);
protected void Page_Load(object sender, EventArgs e)
{
var foxRiver = new string[] { "Mike", "Smith", "Tom", "Jack" };
剩余14页未读,继续阅读
资源评论
shengqing13
- 粉丝: 5
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HITK0203MP-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- HITK0202MP-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说
- 电子电气工程师使用的单位和符号
- HITK0201MP-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- MyBatis动态SQL:构建灵活查询的利器.md
- HITJ0303MP-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- tesseract安装包
- 1_32陀螺仪舵机.zip
- HITJ0302MP-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- XILINXFPGA源码PCIExpress标准概述
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功