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

  • 相关阅读:
    bzoj 4897 天赋 有向图的矩阵数定理
    bzoj 4621 Tc605 思想+dp
    bzoj 4596 [Shoi2016]黑暗前的幻想乡 矩阵树定理+容斥
    bzoj 4455 [Zjoi2016]小星星 树形dp&容斥
    获取Android设备无线和以太网MAC地址
    Java WebSocket库:https://github.com/TooTallNate/Java-WebSocket
    UsbManager, UsbDevice的简单示例
    Android开发之开机自动启动应用
    使用Microsoft Office 2007将文档转换为PDF
    C/C++实现删除字符串的首尾空格
  • 原文地址:https://www.cnblogs.com/158-186/p/6860771.html
Copyright © 2011-2022 走看看