• 开始写博客,学习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的两个功能,一个是统一查询,另一个是集成到编程语言中,吼吼吼。

  • 相关阅读:
    图像旋转中原图16×16分块测试1
    散射对成像的影响、图像退化
    图像分块后相邻像素点旋转过程中对块内信息的利用率估算
    图像分块测试记录(还不对)
    【戏言、昔言、惜言】谭惜言写了一辈子的戏,真情假意,全在戏言里。
    照花台、无锡景、探清水河调
    Python3.x:chrome运行webdriver脚本提示--ignore-certificate-errors
    Python3.x:pip命令安装第三方库,超时处理方案
    Python3.x:抢票
    Python3.x:定时任务实现方式
  • 原文地址:https://www.cnblogs.com/158-186/p/6860771.html
Copyright © 2020-2023  润新知