vb实现LINQ非常简单的例子:

        Dim numbers() As Integer = {1, 2, 3, 4, 5, 6, 7}
Dim allNumbers = From number In numbers
For Each num In allNumbers
Console.WriteLine(num & " ")
Next

LINQ中Let用法:

let关键字,可以让我们的linq查询不单单仅返回IEnumberable<T>类型的结果了,一个linq语句可以添加多个let关键字。

    Public Sub TestLet()

        Dim numbers() As Integer = {1, 2, 3, 4, 5, 6, 7}
'let关键字,允许我们定义第二个变量,并存储特定值。本例中,存储了,是否偶数的判断
'这意味着,返回值可以不单单只是一个IEnumerable(of T)类型的值了。
Dim myEvens = From number In numbers
Let isEven = (number Mod 2 = 0) For Each even In myEvens
Console.WriteLine(even.number & " " & even.isEven)
Next End Sub
 

LINQ中select用法:

上面的两个例子,我们省略了select关键字,这意味着我们使用了默认的select行为,即,选择了指定的每个查询结果(含let变量),逻辑上等同于select *.使用select关键字,我们可以选择或者组合我们想要的结果。同时重新确定变量的作用域,因为linq查询语句只公开select的内容。
 
        Dim customerInfo = From cust In Customers, ord In cust.Orders _
Select myDate = ord.OrderDate, _
name = cust.FirstName & cust.LastName For Each info In customerInfo
Console.WriteLine(info.myDate & info.name)
Next
 

LINQ中的查询结果

上面的例子中,查询结果均使用了匿名类型。匿名类型允许你可以在select子句中指定不同数量的字段,而无需预先指定,由特定字段组合出来的准确类型。
编译器会推断出匿名类型的结构。匿名类型也是强类型的。

LINQ的延迟查询

查询声明实际上不会检索这些数据;只在执行需要数据的操作时,才会导致检索这些数据,这样你可以将查询分成几个逻辑部分,并且仍能实现,只要运行一次就可以得到结果的性能优势。
但是像count之类的方法,是需要立即执行的。
立即执行demo:
        Dim customerInfo = From cust In Customers, ord In cust.Orders _
Select myDate = ord.OrderDate, _
name = cust.FirstName & cust.LastName Dim count = customerInfo.Count
延迟执行demo:
        Dim seattleCustomers = From cust In Customers
Where cust.City = "Seattle"
Dim recentOrders = From ord In orders
Where ord.OrderDate.Year = 2012 Dim cusInfos = From cust In seattleCustomers, ord In recentOrders
Where cust.CustomerId = ord.CustomerId
Select name = cust.LastName & ", " & cust.FirstName, _
cust.CustomerId, ord.OrderDate
Order By OrderDate, name '上面LINQ只有在此处运行时,才被执行
For Each custInfo In cusInfos
'take action on the data here
Next
 
 
参考文章:
http://msdn.microsoft.com/zh-cn/magazine/cc163401.aspx
 
 
 

vb的LINQ实现的更多相关文章

  1. vb.net Linq 筛选(像 select distinct) DateTable 日期数据中的年份

    Private Sub initDDLByYear(ByVal dt As DataTable) ddlByYear.Items.Clear() ddlByYear.Items.Add(") ...

  2. VB.NET vs. C#

    VB.NET Program Structure C# Imports System Namespace Hello    Class HelloWorld        Overloads Shar ...

  3. C# 4.0 的 Visual Studio 2010 示例

    C# 4.0 的 Visual Studio 2010 示例 我们将 C# 示例分为两种不同的类别: 语言示例 LINQ 示例 语言示例 语言示例帮助您熟悉各种 C# 语言功能.这些示例包含在 Lan ...

  4. 在VB中使用Linq To SQLite注意事项

    昨天使Linq To SQLite 支持VB,今天在VB中写了几条Linq语句,发现了几个问题: 1.在Linq To SQLite中的Linq语句查询后并不是得到的匿名数据类,而是将Linq转换为S ...

  5. 在VB中利用Nuget包使用SQLite数据库和Linq to SQLite

    上午解决了在C#中利用Nuget包使用SQLite数据库和Linq to SQLite,但是最后生成的是C#的cs类文件,对于我这熟悉VB而对C#白痴的来说怎么能行呢? 于是下午接着研究,既然生成的是 ...

  6. VB.NET中使用Linq TO SQL添加数据后获得自增长列ID

    VB.NET中使用Linq TO SQL添加数据后获得自增长列ID: Dim tempOrdre As New Order With { .CustomerID = cmbCustomerName.S ...

  7. [转载代码]VB.NET 中查询 Linq to SQL 执行时的SQL语句

    在搜索使用LINQ TO SQL 添加数据后获得自增长ID的方法时,发现C#可以使用DebuggerWritter把使用Linq to SQL执行的SQL语句显示到即时窗口,于是在网上搜索到在VB.N ...

  8. VB.NET中LINQ TO List泛型查询语句(分组,聚合函数)

    Public Class LinqToList 'LINQ在C#中使用比较方便,但是在VB中使用比较麻烦,复杂,和C#用法并不太一样 Dim listNew As List(Of Product) = ...

  9. 使用Microsoft Roslyn提取C#和VB.NET源代码中的字符串常量

    Microsoft Roslyn是微软.NET“编译器即服务(Compiler as a Service)”的主要产品,它提供了开放的编译器API,并为源代码产生.分析和重构提供了新一代的语言对象模型 ...

随机推荐

  1. 使用WebFrom来模拟一些MVC的MODEL与View的数据交互功能

    MVC中有一点非常闪瞎人眼的功能就是,可以根据Model与View视图来直接将页面也数据模型进行绑定,那么我们在想客户端发送页面时不需要进行各种控件赋值,不需要操心怎么渲染,当客户提交表单给服务器时也 ...

  2. zepto源码研究 - ajax.js($.ajax具体流程分析)

    简要:$.ajax是zepto发送请求的核心方法,$.get,$.post,$.jsonp都是封装了$.ajax方法.$.ajax将jsonp与异步请求的代码格式统一起来,内部主要是先处理url,数据 ...

  3. JQuery 解析xml

    JQuery 可以通过 $.get() 或 $.post() 方法来加载 xml.     JQuery 解析 XML 与解析 DOM 一样, 可以使用 find(), children() 等函数来 ...

  4. QT5-控件-QScrollArea-可以用于把一个窗口分割为多个-比如根据图片大小显示滚动条

    #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QLabel> #incl ...

  5. 删除所有ecshop版权和logo

    前面我们已经讲过如何删除ecshop的版权,但是还有很多人不会,今天就详细的讲下如何删除所有ecshop版权和logo 前台部分: 1:去掉头部TITLE部分的ECSHOP演示站 Powered by ...

  6. 转:初学者,手工注入测试方法小节 (出处:: 51Testing软件测试网--jie)

    1.加入单引号 ’提交,  结果:如果出现错误提示,则该网站可能就存在注入漏洞.    2.数字型判断是否有注入; 语句:and 1=1 ;and 1=2 (经典).' and '1'=1(字符型)  ...

  7. js十进制等互相转换

    //十进制转其他 var x=110; alert(x); alert(x.toString(8)); alert(x.toString(32)); alert(x.toString(16));  / ...

  8. PHP判断文章里是否有图片

    用preg_match来检查内容里是否有匹配的“<img”,其实我们还用preg_match来判断很多东西,比如邮箱地址里是否有“@”等,下面用一小段代码来演示具体用法. $content=&q ...

  9. Python入门100例题

    原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/11/05/2755107.html 无论学习哪门计算机语言,只要把100例中绝大部分题目都做一遍, ...

  10. 使用scrapy制作的小说爬虫

    使用scrapy制作的小说爬虫 爬虫配套的django网站  https://www.zybuluo.com/xuemy268/note/63660 首先是安装scrapy,在Windows下的安装比 ...