Linq学习(二)
对于Linq的学习已经有一段时间了基本掌握能够熟练应用。回顾总结Linq学习 ,不得不提的是Lambda表达式。Lambda 表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。
Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。
例如:使用 .net 3.5 的Lambda表达式来搜索字符串数组中包含 a 的字符串数组
var list = new[] { "aa", "bb", "ac" };
var result = Array.FindAll(list, s => (s.IndexOf("a") > -1));
foreach (var v in result)
Console.WriteLine(v);
.net 2.0 的匿名方法来搜索字符串数组中包含 a 的字符串数组
string[] list1 = new string[] { "aa", "bb", "ac" };
string[] result2 = Array.FindAll(list1, delegate(string temp) { return temp.IndexOf("a") > -1; });
Lambda表达式简洁易懂,比起委托好用多。
Lambda表达式的书写格式如下:
(参数列表) => 表达式或者语句块 可以一个或多个参数。Lambda表达式 都是函数式编程思想下的产物。
public delegate int mydg(int a, int b);
public static class LambdaTest
{
public static int oper(this int a, int b, mydg dg)
{
return dg(a, b);
}
}
1.oper(2, (a, b) => a + b);