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<T>类型的数据做过滤操作、排序操作等都会用到的。

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

Lambda表达式进化

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,728评论 25 708
  • 原文:https://my.oschina.net/liuyuantao/blog/751438 查询集API 参...
    阳光小镇少爷阅读 3,972评论 0 8
  • 应用程序还需要操作存储在其他数据源(如SQL数据库或XML文件)中的数据,甚至通过Web服务访问它们。传统上,查询...
    CarlDonitz阅读 696评论 0 0
  • 今天休息,在群居的房子里,只剩一个人还有点小孤单,我打扫着卫生,手机在随机播放着歌曲。播到萨顶顶的《万物生》我停下...
    木柠阅读 281评论 0 0
  • 兴趣是第一源动力,很多职业最初的起源来自于个人对某一事物的好奇,由此产生了兴趣而一发不可收拾,产品经理也不例外。产...
    缠道禅阅读 440评论 0 1

友情链接更多精彩内容