• C#第六次作业(LINQ)


    LINQ,语言集成查询(Language Integrated Query)是一组用于C#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

    LINQ可以对多种数据源和对象进行查询,如数据库、数据集、XML文档甚至是数组,这在传统的查询语句中是很难实现的。如果有一个集合类型的值需要进行查询,则必须使用Where等方法进行遍历,而使用LINQ可以仿真SQL语句的形式进行查询,极大的降低了难度。

    数组中的数据可以被LINQ查询语句查询,这样就省去了复杂的数组遍历。数组数据源示例代码如下所示。

    string[] str = { "学习", "学习LINQ", "好好学习", "生活很美好" }; 

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

    数组可以看成是一个集合,虽然数组没有集合的一些特性,但是从另一个角度上来说可以看成是一个集合。在传统的开发过程中,如果要筛选其中包含“学习”字段的某个字符串,则需要遍历整个数组。

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text; namespace _21_1 

    class Program     


            static void Main(string[] args) 
            { 
                string[] str = { "学习", "学习LINQ", "好好学习", "生活很美好" }; //定义数组             

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

         for (int i = 0; i < inter.Length; i++) 
                { 
                    if (inter[i] > 5)         

          {
                        Console.WriteLine(inter[i].ToString());  
                    }             

        } 
                Console.ReadKey();         

        }     

    就像这样的程序,无疑会使得查询过程变得繁琐而无趣

    这时候我们可以改变查询方式

    用LINQ来进行查询,使用这样的语句

    var st = from s in str where s.Contains("学习")  select s; 

    这中间的“学习”即是我们查询的东西。

    也就是这样修改

    class Program 

    static void Main(string[] args) 

    string[] str = { "学习", "学习LINQ", "好好学习", "生活很美好" }; 

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

    var st = from s in inter where s > 5  select s; 

    foreach (var t in st) 

    Console.WriteLine(t.ToString()); 

    Console.ReadKey(); 

    }

    输出不变

    条件可以任意改变

    var st = from s in inter where (s*s)%2==0 select s;

    例如改成这个则输出变为

    使用LINQ进行查询之后会返回一个IEnumerable的集合,这时候就需要实现IEnumerable<T>接口。并且LINQ的查询表达式是在最近一次创建对象时才被编译的。

    from 临时变量 in 实现IEnumerable<T>接口的对象
    where条件表达式
    [orderby 条件]
    [group by 条件]
    select 临时变量中被查询的值

    LINQ同样对数据集支持查询和筛选操作。其实数据集也是集合的表现形式,数据集除了能够填充数据库中的内容以外,还能够通过对数据集的操作向数据集中添加数据和修改数据。数据集能够模拟基本的数据库,包括表、关系等。

    暂时只调整到这里。时间不足。据说还能够进行嵌套查询。。不明所以。

  • 相关阅读:
    刷题总结——射箭(bzoj2732)
    算法复习——半平面交(bzoj2618凸多边形)
    刷题总结——spoj1812(后缀自动机+DP)
    刷题总结:最长公共字串(spoj1811)(后缀自动机)
    算法复习——后缀自动机
    算法复习——splay+启发式合并(bzoj2733-永无乡)
    北京集训TEST13——PA(Goodness)
    linux命令学习笔记(46):vmstat命令
    linux命令学习笔记(45):free 命令
    linux命令学习笔记(44):top命令
  • 原文地址:https://www.cnblogs.com/sunset-scarlet/p/4460794.html
Copyright © 2020-2023  润新知