2016-06-27 16:30
周陈
一、关于LINQ
30分钟LINQ教程
这篇文章可以让人明白,为什么每次讲到LINQ都会讲到Lambda,讲到委托,讲到匿名等等,也就是第一部分的内容:与LINQ有关的语言特性。
Linq之旅:Linq入门详解(Linq to Objects)
这篇文章主要介绍了LINQ to Objects的操作方法,比较详细,而且也有代码。
细说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<T>类型的数据做过滤操作、排序操作等都会用到的。
二、关于Lambda
lambda表达式之进化这篇文章将Lambda的进化讲解得偏僻如理,清晰明了啊!
Lambda的本质就是匿名方法
Lambda是LINQ的基础,这么看来,应该把Lambda放前面写的
PS:
1、为什么有些人特别讨厌Lambda呢?我觉得挺好的呀,很简单的代码可以做很复杂的事情呢。
2、其实这也是一个培训笔记,但是因为我完全没理解讲师讲了些什么,所以就自己去网上找了这些文章来补充一下,学习一下了。
网友评论