Linq&Lambda

2016-06-27 16:30
周陈

一、关于LINQ
30分钟LINQ教程
这篇文章可以让人明白,为什么每次讲到LINQ都会讲到Lambda,讲到委托,讲到匿名等等,也就是第一部分的内容:与LINQ有关的语言特性。

Linq之旅:Linq入门详解(Linq to Objects)
这篇文章主要介绍了LINQ to Objects的操作方法,比较详细,而且也有代码。

LINQ专题

细说Linq之Aggregate这篇文章真是太神奇了,比如求1到100的和,这可是数学王子高斯的经典啊!再比如求5的阶乘。大多数的人可能会用循环去做,代码如下:

            //求和
            var sum=0;
            for (int i = 1; i <= 100; i++)
            {
                sum += i;
            }
            Console.WriteLine(sum);
            
            //求阶乘
            var mul = 1;
            for (int i = 1; i <= 5; i++)
            {
                mul *= i;
            }
            Console.WriteLine(mul);

有了LINQ的Aggregate,只需一行代码即可实现,如下:

            //求和
            var list = Enumerable.Range(1, 100);
            var result = list.Aggregate((a, b) => (a + b));
            Console.WriteLine(result);
            
            //求阶乘
            var list2 = Enumerable.Range(1, 5);
            var result2 = list2.Aggregate(1, (a, b) => (a * b));
            Console.WriteLine(result2);

LINQ的Enumerable类里有35个方法,在使用到LINQ时,经常会用到这些方法,没事翻一翻,对List类型的数据做过滤操作、排序操作等都会用到的。

二、关于Lambda
lambda表达式之进化这篇文章将Lambda的进化讲解得偏僻如理,清晰明了啊!

Linq&Lambda_第1张图片
Lambda表达式进化

Lambda的本质就是匿名方法
Lambda是LINQ的基础,这么看来,应该把Lambda放前面写的

PS:
1、为什么有些人特别讨厌Lambda呢?我觉得挺好的呀,很简单的代码可以做很复杂的事情呢。
2、其实这也是一个培训笔记,但是因为我完全没理解讲师讲了些什么,所以就自己去网上找了这些文章来补充一下,学习一下了。

你可能感兴趣的:(Linq&Lambda)