C#3.0 序列教程 (5) - Lambda表达式
lambda表达式实际 是将 一个匿名方法写成了 表达式的形式
class Program
{
static void
{
var lst = new List<int>
{
1,3,5,2,2,1,4,111,2,3222
};
/* 使用 lambda表达式 之前用匿名类的 等同写法
var lst1 = lst.FindAll(
delegate(int n)
{
return n.ToString().IndexOf("2") != -1;
}
);
*/
//lambda表达式方式:借助delegate机制实现的更接近于自然语言的匿名方法
//lambda表达式 是将 一个匿名方法写成了 表达式的形式
//使用lambda表达式代替上面匿名方法的写法
var lst1 = lst.FindAll(
(s) => {
//int x = 100;
return s.ToString().IndexOf("2") != -1;
}
);
/*
* lambda表达式格式:
* (参数列表) => 表达式或者语句块
*
* 可以有多个参数,一个参数,或者无参数。参数类型可以隐式或者显式。
* 例如:
* (x, y) => x*y //多参数,隐式类型=> 表达式
* x=> x*10 //单参数, 隐式类型=>表达式
* x=> {int x = 100; return x*10;} //单参数,隐式类型=>语句块
* (int x) => x*10 // 单参数,显式类型=>表达式
* (int x)=> {return x*10; } // 单参数,显式类型=>语句块
* () => Console.WriteLine() /无参数
*
*/
foreach (var i in lst1)
{
Console.WriteLine(i);
}
}
}