lambda表达式

LINQ基础

LINQ Language Integrated Query

LINQ API, 使 使 XML SQLServer  。

LINQ

 LINQ to Objects

 LINQ to XM L XML  

 LINQ to ADO.NET 查询 ( LINQ to SQL )


 LINQ组成


查询实例:从numbers数组中提取偶数并降序排列


不使用LINQ


Int[] numbers = new int [ ]{ 6 , 4,3, 2 , 9 , 1 , 7 , 8 ,5 }


List <int>  even = new Llst <int> ();


foreach(Int number in numbers)


{  

     if (number % 2 == 0 )

{

Even.Add(number);

}

}


使用LINQ

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) ;



代码分析


lambda表达式的发展



定义委托

delegatestring Processstrlng( string Input )

委托可以理解为一个函数指针,它定义了一个函数的原型委托的实例化和使用。


匿名方法

在C#2.0中加入了匿名方法特性


ProcessString p = delegate stringinput //string input 是参数列表

{

return input TOLower();                           //方法体

};

Console. WriteLine( p ( "ABCD ” ));                    //"ABCD",这里没有了具体的方法名称,因此成为匿名方法



lambda表达式

在C#3.0中,继匿名方法之后加入了更加简洁的lambda表达式


ProcessString p  =input=> input ToLower () ;

Console. WriteLine( P ("ABCD ” ));


lambda表达上语法


(参数列表) => {方法体}

参数列表中的参数类型可以是明确类型或者推断类型,如果是推断类型,则参数的数据类型将由编译器根据上下文自动推断出来。


lambda表达式的简写方式:如果参数列表只包含一个推断或者方法体中只包含一条语句时,就可以不用括号括起来

=>    /(参数列表) => 方法体  /  参数列表  =>  {方法体}


 Lambda

Lambda  存

Lambda  明参数

Lambda 或多条 式形式。


学习LINQ以及lambda表达式可以通过一个小软件:LINQpad







评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值