上一篇是根据百度百科写的随便,同时也纠正我对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;

LINQ学习笔记(二)的更多相关文章

  1. C# LINQ学习笔记二:LINQ标准查询操作概述

    本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5801249.html,记录一下学习过程以备后续查用. “标准查询运算符”是组成语言集成查询 (LINQ) 模式 ...

  2. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  3. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  4. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  5. JMX学习笔记(二)-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  6. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  7. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  8. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  9. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  10. Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

随机推荐

  1. Oracle数据库零散知识03

    21,存储过程,简化复杂操作,增加数据独立性,提高安全性,提高性能 与函数创建对比: create or replace function fun_01(v_01 in number) return ...

  2. System and method for dynamically adjusting to CPU performance changes

    FIELD OF THE INVENTION The present invention is related to computing systems, and more particularly ...

  3. 有奖试读&amp;征文--当青春遇上互联网,是否能点燃你的创业梦

    时至今日,互联网已经切入我们每一个人的工作.生活和学习的每一个角落.利用互联网这个工具,有人游戏,有人购物,有人上课,有人交友,而有那么一部分人去利用它完毕人生最完美的逆袭.相信每一个人心中都有个创业 ...

  4. FPGA综合优化

    1 速度和面积 在全面优化水平将达到速度和面积RTL要利用逻辑拓扑的优势. 供FPGA由于在后端而言缺乏知识,门级优化.普通情况下更高的速度要求更高的并行性以及更大的面积,可是在某些特殊情况下并非这样 ...

  5. Arcgis api for javascript学习笔记(4.5版本)-三维地图的飞行效果

    其实就只是用到了 view.goTo()  函数,再利用 window.setInterval()  函数(定时器)定时执行goTo().代码如下: <!DOCTYPE html> < ...

  6. mongoose ObjectId.toString()

    node中一般我们经常对id进行判断,有的id是string类型,有的是ObjectId(''),这时候就可以使用mongoose的toString方法,将它转换成string

  7. 买不起360随声wifi怎么办?这些都不是问题

    只需轻松一步,点击开启共享 软件下载地址:http://download.csdn.net/detail/lxq_xsyu/6384265 如果身边没有数据线怎么办?? 使用方法: 1.用手机连接Wi ...

  8. myeclipse 8.6 software and workspace center is currently not available

    Myeclipse安装EGit插件的时候偏偏遇到software and workspace center is currently not available 不用打开myeclipse  conf ...

  9. eclipes 常用的快捷键 , 修改字体

    内容辅助键  Alt+/ 自动补齐main方法  main 然后 Alt+/ 自动补齐输出语句  syso 然后 Alt+/ 格式化Ctrl+Shift+f 代码区域右键 -- Source – Fo ...

  10. CUDA+OpenCV 绘制朱利亚(Julia)集合图形

    Julia集中的元素都是经过简单的迭代计算得到的,很适合用CUDA进行加速.对一个600*600的图像,需要进行360000次迭代计算,所以在CUDA中创建了600*600个线程块(block),每个 ...