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;

  • 相关阅读:
    在CentOS-6.9里安装openvswitch-2.5.4
    Django 2.0.7 使用小知识
    微信小程序 存储数据到本地以及本地获取数据
    微信小程序目录结构与配置介绍
    微信小程序视图层介绍及用法
    小程序 wx.request请求
    小程序的启动流程(生命周期)
    小程序的双线程模型
    小程序之基础组件
    小程序之路由跳转
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6684566.html
Copyright © 2011-2022 走看看