博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LINQ
阅读量:5954 次
发布时间:2019-06-19

本文共 1283 字,大约阅读时间需要 4 分钟。

LINQ通过提供一种跨各种数据源和数据格式使用数据的一致模型。在LINQ查询中,始终会用到对象。可以使用相同的基本编码模式来查询和转换XML文档、SQL数据库、ADO.NET数据集、NET集合中的数据以及对其LINQ提供程序可用的任何其他格式的数据。

查询操作的三个部分

1.获取数据源。2.创建查询。3.执行查询

'1.Data Source        Dim numbers() As Integer = {0, 1, 2, 3, 4, 5}        '2.Query creation        'numbers is an IEnumerable
Dim evensQuery = From num In numbers Where num Mod 2 = 0 Select num '3.Query execution For Each number In evensQuery Console.WriteLine(number & " ") Next

在LINQ中,查询的执行和查询本身截然不同;换句话说,如果是创建查询变量,则不会检索任何数据。

数据源

由于上面实例中,数据源是数组,因此它隐式支持泛型IEnumerable(of T)接口。这一事实意味着该数据源可以用LINQ进行查询。在foreach语句中执行查询,而Foreach要求使用IEnumerable或IEnumerable(of T)。支持IEnumerable(of T)或派生接口(如泛型IQueryable(of T))的类型称为"“可查询类型”。

查询

查询指定要从数据源中检索的信息。查询还可以指定在返回这些信息之前如何对其进行排序、分组和结构化。查询存储在查询变量中,并用查询表达式进行初始化。

上一个示例中的查询从整数数组中返回所有偶数。该查询表达式包含三个子句:from、where和select。from子句指定数据源,where子句应用筛选器,select子句指定返回的元素。

需要注意的是,在LINQ中,查询变量本身不执行任何操作并且不返回任何数据。它只是存储在以后某个时刻执行查询时为生成结果而必需的信息。

查询执行

延迟执行。如前所述,查询变量本身只是存储查询命令。实际的查询执行会延迟到在foreach语句中循环访问查询变量时发生。此概念称为“延迟执行”

强制立即执行。对一系列源元素执行聚合函数的查询必须首先循环访问这些元素。Count,Max,Average和first就属于此类查询。

若要强制立即执行任意查询并缓存其结果,可以调用ToList(Of T)或ToArray(of T)方法。

转载于:https://www.cnblogs.com/RealAlex/archive/2013/03/15/2960892.html

你可能感兴趣的文章
【进阶修炼】——改善C#程序质量(9)
查看>>
那些闪亮的日子之二
查看>>
WAR文件
查看>>
Shell 的变量(转)
查看>>
dict
查看>>
面向对象之继承与派生
查看>>
vim 编辑器常用命令
查看>>
python中IO多路复用、协程
查看>>
Java几款性能分析工具的对比
查看>>
如何隐藏所有的导航栏
查看>>
QQ 的登录封面是怎么设计的
查看>>
eas之Uuid和BOSUuid 区别
查看>>
大数据培训:小白如何学好大数据
查看>>
一些看起来有用但没用过的函数
查看>>
解释清楚智能指针二【用自己的话,解释清楚】
查看>>
【Javascript第二重境界】序
查看>>
python-argparse使用
查看>>
PHP支付宝手机网站支付功能
查看>>
微信小程序css篇----flex模型
查看>>
【转载】IL指令集
查看>>