LINQ简记(2):重要概念
- string[] arrSource = new string[]
- "turn", "sou", "tao", "mar", "ate", "leee", "data", "em"
- ;
2、创建查询,我们来写一个LINQ表达式,把上面字符串数组中包含字母“t ”的都筛选出来。
- IEnumerable<string> result =
- from s in arrSource
- where s.Contains("t")
- select s;
3、执行查询,把结果输出到“输出窗口”中。
- // 执行
- Debug.WriteLine("\n包含“t”的字符串有:");
- foreach (string item in result)
- {
- Debug.Write(" " + item);
- }
运行一下程序,你会看到以下结果。
- 包含“t”的字符串有:
- turn tao ate data
呵呵,怎么样?找到感觉了没?不要紧张,再练一个。
1、数据源。
- int[] mySource = new int[] { 26, 38, 17, 21, 55, 88, 120, 107, 67, 18, 29, 30 };
2、创建查询。把里面的偶数筛选出来。
- IEnumerable<int> resInt =
- from n in mySource
- where n % 2 == 0
- select n;
3、执行查询。
- Debug.WriteLine("数组中是偶数的:");
- foreach (int nn in resInt)
- {
- Debug.Write(" " + nn.ToString());
- }
最终,我们得到以下结果。
- 数组中是偶数的:
- 26 38 88 120 18 30
二、延迟执行。
你一定会问,LINQ表达式是在什么时候执行呢?在声明查询变量时,还是在foreach循环中?好,我们一起来探索一下。
LINQ一般是延迟执行,也就是说,到了foreach的时候才被执行,如果要强制执行,可以调用ToArray等方法,如。
- int[] newValues = resInt.ToArray();
这个,很难通过断点调试去证实,因为当你在单步跟入时,为了预览结果视图,VS已经提前执行了。因此,这个概念我们参阅一下MSDN就可以了,也不属于很重要的内容,重要的我们知道怎么用它。
下面这张图片来自微软官方文档,它展示了LINQ的整个执行过程。

LINQ简记(2):重要概念的更多相关文章
- LINQ简记(1):基本语法
关于LINQ(语言集成查询)是.NET 3.5和Visual Studio 2008以上版本中引入的一种有趣的全新概念,语言版本有VB和C#,由于C#与.NET平台结合最为紧密,也是MS当初首推的语言 ...
- LINQ简记(3):子句
LINQ查询表达式的子句如select,where,from等都是比较简单的子句,相信各位多练习练习,再结合MSDN的例子,基本上是可以理解的,因此,本文只挑几个有代表性的,以及有些难理解的子句来简述 ...
- LINQ to XML 编程基础
1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: 隐藏行号 复制代码 ?创建 XML public static void CreateDocumen ...
- Linq世界走一走(LINQ TO XML)
前言:Linq to xml是一种使用XML的新方法.从本质上来说,它采用了多种当前使用的XML处理技术,如DOM和XPath,并直接在.NET Framework内将它们组合为一个单一的编程接口.L ...
- Asp.net之LINQ入门视频教程
当前位置: 主页 > 编程开发 > Asp.net视频教程 > Asp.net之LINQ入门视频教程 > http://www.xin1234.com/Program/Aspn ...
- LINQ to XML LINQ学习第一篇
LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDoc ...
- 查询表达式和LINQ to Objects
查询表达式实际上是由编译器“预处理”为“普通”的C#代码,接着以完全普通的方式进行编译.这种巧妙的发式将查询集合到了语言中,而无须把语义改得乱七八糟 LINQ的介绍 LINQ中的基础概念 降低两种数据 ...
- 状态机/迭代器/LINQ/协程
状态机 有限状态机(Finite State Machine 或 Finite State Automata)是软件领域中一种重要的工具. 状态机允许一个对象在其内部状态改变时改变它的行为.对象内部状 ...
- 1、ASP.NET MVC入门到精通——新语法
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...
随机推荐
- jquery 数组添加不重复数据
var columnCommentsArray = new Array(); $("input[name='columnComments']").each( function(){ ...
- JavaScript Patterns 2.3 For loops
HTMLCollections are objects returned by DOM methods such as: • document.getElementsByName() • docume ...
- .net连接MySQL数据库的方案与实例演示
以下的文章主要是向大家描述的是.net连接MySQL数据库的实际操作方法与其实例的演示.net连接MySQL数据库的实际操作方案我们主要是将其分成三部分,以下的文章就有其详细内容的描述. http:/ ...
- 插入排序(1)——直接插入排序(insert sort)
假设有一组无序序列 R0, R1, ... , RN-1. (1) 我们先将这个序列中下标为 0 的元素视为元素个数为 1 的有序序列. (2) 然后,我们要依次把 R1, R2, ... , RN- ...
- @注解与普通web.xml的关系
@WebServlet(name = "SimpleServlet" ,urlPatterns = {"/simple"}) public class Simp ...
- jsp ajax 数据库Demo
转自:http://blog.csdn.net/rushkid02/article/details/7515058 下面介绍JSP前台表单内容通过Ajax异步提交到后台Servlet进行校验(校验方式 ...
- hdu 6201(最小费用最大流)
transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 132768/1 ...
- JAVA Swing 事件监听
EventListner 接口 它是一个标记接口,每一个监听器接口扩展.这个类定义在java.util包. 类声明 以下是声明java.util.EventListener接口: public int ...
- SpringBoot集成Redis来实现缓存技术方案
概述 在我们的日常项目开发过程中缓存是无处不在的,因为它可以极大的提高系统的访问速度,关于缓存的框架也种类繁多,今天主要介绍的是使用现在非常流行的NoSQL数据库(Redis)来实现我们的缓存需求. ...
- Android内存管理(9)*MAT:Heap Dump,Shallow Heap,Retained Heap,Dominating Tree,GC Roots等的含义
原文: http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Fconcepts%2Fheapdump.ht ...