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

posted @ 2009-12-08 22:58  wakerobin  阅读(359)  评论(2编辑  收藏  举报