有志者、事竟成,破釜沉舟,百百二秦关终属楚;苦心人、天不负,卧薪尝胆,三千越甲可吞吴。

拂晓犬吠

学习中遇到困难是很正常的事情,不要苦恼,不要气馁,恰恰相反,应该兴奋,因为又学到知识了,需要不断提高自己应对问题和解决问题的能力和信心。

开始写博客,学习Linq(5)

开始写代码了,我会把自己的代码粘贴在这里,好不容易可以实践了,可是不能偷懒的。

 string[] words = { "hello", "wonderful", "linq", "beautiful", "world" };

            var shortWords =
                from word in words
                where word.Length <= 5
                select word;

            foreach (var word in shortWords)
            {
                Console.WriteLine(word);
            }

            Console.Read();
View Code

这是个简单的运用Linq来操作集合的。简单的是好理解,但让你理解的不深入,所以,不要害怕困难。

string[] words = { "hello", "wonderful", "linq", "beautiful", "world" };

            var groups =
                from word in words
                orderby word ascending
                group word by word.Length into lengthGroups
                orderby lengthGroups.Key descending
                select new { Length = lengthGroups.Key, Words = lengthGroups };

            foreach (var group in groups)
            {
                Console.WriteLine("Words of length "+group.Length);

                foreach (var word in group.Words)
                {
                    Console.WriteLine("     "+word);
                }
            }


            Console.Read();
View Code

这是个难的,当然也是运用Linq来操作集合(记得以前我是区分不出什么是Linq和Lambda,而且还让同事忽悠过,想想就气愤,不懂一定要自己学)

这个难,我是不理解。为什么凭空出现了LenghtGroups的,既然它能够出现在C#语言中,那一定有它的原因的,比如什么匿名类型啊或者扩展方法啊。当然现在我这些统统不懂呢,不过我觉得和C#基础是有关联的,我也很期待

摘自原文

试一试使用传统方法的实现。你会发现需要很多代码,并且要频繁地操作集合。Linq的第一个优势-强大的表达能力,Linq让我们能够用声明的方式在查询中表达将要实现的目的,而无需编写大量的间接代码。

而且你熟悉SQL的话,或许已经垃圾这些代码正在做什么了。除了支持这种优雅的、类似于SQL的查询之外,Linq也提供了一系类函数,例如Sum、Min、Max和Average等,使我们可以执行更加丰富的操作。

的确Linq省略了大量操作集合的循环判断代码,用声明的方式查询,我有些明白什么叫 声明的方式查询 了;

比如这段代码 decimal totalAmount =orders.Sum(order => order.Amount);是不是一个变量,然后是后面一段赋值,就ok了。

文中后一句,写的熟悉sql,我想再强调下,这只是c#代码,和sql没有关系,不要理解错了,虽然sql脚本中也有Sum语法,但是上面那段代码的SUM是C#代码,文中也只是说类似sql,充分说明linq是方便的操作集合,操作集合就是操作数据喽。不要忘记linq的两个功能,一个是统一查询,另一个是集成到编程语言中,吼吼吼。

posted @ 2017-05-16 12:41  ID拂晓犬吠  阅读(118)  评论(0编辑  收藏  举报