• LinQ学习笔记(一)


    前言                    


           边工作边转型,对象的思想对于初学者是非常重要的。具备一定的代码识别和理解能力后,我决定边做项目边学习。前些阶段小项目中查询数据的时候使用了Linq,那就从它开始。

    正文                 


    1、对于数组:

       1: using System;
       2: using System.Collections.Generic;
       3: using System.Linq;
       4: using System.Text;
       5: using System.Threading.Tasks;
       6:  
       7: namespace ConsoleApplication1
       8: {
       9:     class LinqTest
      10:     {
      11:         static void Main(string[] args)
      12:         {
      13:             string[] names = { "Alone","Lisi","Samba","Fatimah","Sam","Ssn"};
      14:             //第一种使用原生态的查询语句的方法
      15:             var queryResult = from n in names                               
      16:                               where n.StartsWith("S") 
      17:                               orderby n descending  
      18:                               select n; 
      19:                  
      20:             //第二种方法使用Linq的方法
      21:            // var queryResult = names.OrderByDescending(n=>n).Where(n=>n.StartsWith("s"));
      22:               
      23:             foreach (var Items in queryResult) 
      24:             {
      25:                 Console.WriteLine(Items);
      26:             }
      27:             Console.ReadKey();
      28:  
      29:         }
      30:     }
      31: }

    结果:

    Ssn
    Samba
    Sam

    许多都是在一行代码中完成的,对于以上的这样最简单的查询,方法语言要比查询语法更加简短。

    注解:

      var queryResult = from n in names 

    //n为数据中的代表,有点像foreach。迭代,Linq数据源必须是是可枚举的——即必须是数组和集合以便从中选择一个或者多个元素
                                where n.StartsWith("S")

    //使用where语句,当然限制的条件可以是其他如(where n.Length>10)或者(where n.Contains("Q"))

    //若n为数字这可以使用  where n<1000
                               orderby n descending 

    //降序 //orderby n 默认为升序  //orderby n.Substring(n.Length-1)//按最后一个字母来排序

                               select n;

     // 指定结果集中包含哪一些元素。这里就是一个集合里面就只是字符串,所以就只要查询n这个对象就好了

    var queryResult = names.OrderByDescending(n=>n).Where(n=>n.StartsWith("s"));
      //c#编译器把Lambda表达式n=>n.StartsWith("s")编译成一个匿名方法 ,Where()方法在names数组上的每一个元素执行这个方法 
      //如果Lamdba表达式给某个元素返回的是true,那么该元素就包含在Where返回的结果集中
      //OrderByDescending(n=>n)为降序,OrderBy(n=>n)为升序

    2、对于聚合函数:

    Count()   结果中的个数
    Min() 结果中的最小值
    Max() 结果中的最大值
    Average() 数字结果的平均值
    Sum() 所有数字结果的总和

    使用方法:

    queryResult.Count()

    queryResult.Min() 

    queryResult.Max()

    queryResult.Average()

    queryResult.Sum(n=>(long)n)  //怕超出范围使得导致溢出错误,n为int的时候        

     

    附注:                     

    看了很多,总结真是写得慢死了,悲剧啊~真是佩服那些长期写博客的

  • 相关阅读:
    set的使用
    dict的使用
    tuple的使用
    Python数据类型字符串
    spring与redis集成之aop整合方案
    MySQL 对于大表(千万级),要怎么优化呢?
    MYSQL千万级数据量的优化方法积累
    Java:按值传递还是按引用传递详细解说
    常用正则表达式
    Java中equals和==的区别
  • 原文地址:https://www.cnblogs.com/qhyhao/p/2753132.html
Copyright © 2020-2023  润新知