zoukankan      html  css  js  c++  java
  • LINQ学习笔记(二)

       上一篇是根据百度百科写的随便,同时也纠正我对LINQ的看法,因为首次接触LINQ是使用EF对数据库数据的操作。

    所以误以为它操作数据库的一种新手段。

       LINQ语言集成查询是一组技术的名称,这些技术建立在查询功能直接集成在带C#语言的基础上。

    借助LINQ,查询现在已经是高级语言构造,就如同类、方法、事件等等。

    LINQ的数据源包括SQL数据库,ADO.NET数据集,XML文档和流,以及.NET集合中数据。

    下面是以简单的例子入门

    // 指定数据源
    int[] scores = new int[] { 97, 92, 81, 60 };

    // 定义查询表达式
    IEnumerable<int> scoreQuery =
    from score in scores
    where score > 80
    select score;

    // 执行查询
    foreach (int i in scoreQuery)
    {
    Console.Write(i + " ");
    }

    输出结果是:97 92 81

    其中scoreQuery被成为"查询变量",简称"查询"。

    查询变量本身并不存储实际的结果数据,而是当foreach语句执行时通过变量i返回的。

    LINQ查询的数据只有在用到的时候才会真正的去查询,因为就是说如何不执行foreach类似的

    查找数据的语句,是不会有数据的出现的。

    其中score是范围变量。范围变量的类型是有数据源中元素的类型确定的,上述score是int类型。

    查询表达式必须以from子句开头,同时指定数据源和范围变量,并且以select或group子句结尾。

    在对源序列节能型遍历的过程中,范围变量表示源序列中的每个后续元素。

    在第一个子句from和最后一个select胡或group子句之间,表达式必须包含

    一个或多个下列可选子句:where、orderby、join、let甚至附加的from子句。

    还可以是使用into关键字使join或group子句的结果充当同一下查询表达式中附加

    查询子句的源。

    LINQ的查询语法在上一篇中并未做解释

    所以在这一篇加以解释

    LINQ是存在两种语法。

    1.Query syntax 查询语法 ,就是通过写查询表达式的方式实现

    例如:

    IEnumerable<City> queryMajorCities =
    from city in cities
    where city.Population > 100000
    select city;

    上述的代码就是以查询语句的方法实现的,但此时并不存在真正的数据。

    2.Method-based syntax 基于方法的语法,就是通过方法的形式实现查询

    例如:

    IEnumerable<City> queryMajorCities2 = cities.Where(c => c.Population > 100000);

    其中cites是数据源,通过在数据源的方法实现查询。

    以上的查询变量都是显示指定了类型,但它因为是支持类型推断来隐式类型化的。

    使用var关键字指示编译器在编译时推断查询变量的类型。

    例如:

    var queryCities =
    from city in cities
    where city.Population > 100000
    select city;

  • 相关阅读:
    多选择文件打开对话框
    DirectoryExists
    获取IP地址
    获取WINDOWS特殊文件夹
    WPF WebBrowser
    DELPHI TDownLoadURL下载网络文件
    同步窗体移动 FormMove
    FireMonkey 使用Webbrowser
    网页截取图片
    FormMove
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6684566.html
Copyright © 2011-2022 走看看