zoukankan      html  css  js  c++  java
  • LinQ的一些基本语句

    LINQ(Language Integrated Query)即语言集成查询。它是一种语言特性和API,使得你可以使用统一的方式编写各种查询,查询的对象包括xml、对象集合、SqlServer数据库等。

    1、LINQ To Object      负责对象的查询

    2、LINQ To XML         负责对XML的查询

    3、LINQ To ADO.NET  负责数据库的查询

    查询例如:

    int[] numbers=new int[]{1,2,7,9,3,6}

    List<int> array=new List<int>();

    foreach(int temp in numbers)

    {

    if(temp%2==0)

    {

    array.Add(temp);

    }

    LINQ 查询:

    int[] numbers=new int[]{1,3,5,9,2,7}

    var even=numbers.where(p=>p%2==0).select(p=>p).OrderBy Descending(p=>p);//从数组中提取偶数并降序排列

    even.sort();//升序

    even.Reverse();//降序

    Lambda表达式的进化:

    C# 1.0  委托

    C# 20  匿名方法

    C# 3.0 Lambda表达式

    委托:

    delegate string ProcessString(string input);

    ProcessString p=new ProcessString(Lowerlt);

    foreach(string name in FoxRive)

    {

    console.WriteLine(p(name));

    }

    Private string Lowerlt(string input)

    {

    return input.ToLower();

    }

    匿名方法:

    ProcessString p=new ProcessString(string input)

    {

    return input.ToLower();

    }

    foreach(string name in FoxRive)

    {

    console.WriteLine(p(name));

    }

    Lambda表达式:

    ProcessString p=input=>input.ToLower();

    foreach(string name in FoxRive)

    {

    console.WriteLine(p(name));

    }

    查询语句示例:

    示例一:

    int[] numbers=new int[]{6,4,3,2,1,9,7,8,5}

    var even=numbers.where(p=>p%2==0)

                  .select(p=>{console.write(p.tostring())}); return p;)

    foreach(var item in even)

    {

    console.writeline(item);

    }

    示例二:

    int[] numbers=new int[]{6,4,3,2,1,9,7,8,5}

    var even=from number in numbers

                  where  number%2==0)

                  .orderby number descending select number;

    foreach(var item in even)

    {

    console.writeline(item);

    }

    复杂查询语句示例:

    List<Person> p=GetFoxRiver();

    var q=from a in p where a.Age<30 && a.FristName.Length=7

              orderby a.Age DEscending

             select new {Name=a.FristName+""+a.LastName,Age=a.Age};

    foreach(var item in even)

    {

    console.writeline(item.Name+""+item.Age);

    }

    聚合类

    int[] array=new int[]{1,3,7,9,2,14}

    console.writeline("Max:{0}",array.Max());//返回最大值

    console.writeline("Min:{0}",array.Min());//返回最小值

    console.writeline("Average:{0}",array.Average());//返回平均值

    var result=(from p in array where p.Startswith(',') select p).count();

    console.writeline("count:{0}",result);//返回数组中总共几个数

    分区类

    var result=array.Take(3);//从序列开头返回指定数量,连续元素

    结果:1,3,7

    var result=array.Takewhere(p=>p%2==0);//满足条件就返回元素,不满足就不返回

    结果:2,14

    var result=array.where(p=>p%2==0).Take(1);//

    结果:2

    var result=array.skip(2);//跳出序列中指定数量的元素返回剩余值元素

    结果:3,7,9,2,14

    var result=array.skipwhere(p=>p》3);//

    结果:7,9,2,14

    集合类

    var result=array.Distirot();//返回序列中非重复元素

    生成类:

    var result=Enumerable.Repeat("a",10).tolist();//生成包含一个重复值的序列

    var result=Enumerable.Range(2,10).tolist();//生成一个指定范围内的序列

  • 相关阅读:
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    FFmpeg解码H264及swscale缩放详解
    linux中cat more less head tail 命令区别
    C语言字符串操作总结大全(超详细)
    如何使用eclipse进行嵌入式Linux的开发
  • 原文地址:https://www.cnblogs.com/luckly-hf/p/4075123.html
Copyright © 2011-2022 走看看