初学 Lambda 表达式
2010-07-25 14:46 迷 阅读(209) 评论(0) 编辑 收藏 举报Lambda 表达式是个神奇的东东,惭愧自己用了这么久 C# 其实还只是个初学者,对 Lambda 认识很模糊。
网络上的有些例子,不过绝大部分都是转载自同一篇,而且有些还是个有问题的例子,无法编译通过,所以我重新改写了一下,记录一下编译通过的版本,算是我迈出学习 Lambda 的第一步。
例子一、查找数组中的元素:
List<string> list = new List<string>();
list.Add("abc");
list.Add("xyz");
list.Add("1,2");
string str = list.FindAll(s => s.IndexOf(',') > -1)[0]; //这里返回的是数组,而不是其中元素
Response.Write(str);
例子二、查找数组中的元素:
string[] digits = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
var shortDigits = digits.Where((digit, index) => digit.Length < index); //基本例子一
foreach (var shortDigit in shortDigits) {
Response.Write(" " + shortDigit);
}
例子三、定义代理:
delegate int DemoDelegate(int i);
private void Demo()
{
DemoDelegate myDel = x => x * x; //直接定义委托的实际执行方式,并自动返回了结果
Response.Write( myDel(5) );
}
例子四、定义代理:
delegate void DemoDelegate(string s);
private void VoidDemo()
{
// 同上面差不多,只是没有返回值。
DemoDelegate myDel = n => { string s = n + " " + "World"; Response.Write(s); };
myDel("Hello");
}