一、模块代码

' Fig. 9.4: LINQWithArrayOfObjects.vb
' LINQ to Objects using an array of Employee objects.
Module LINQWithArrayOfObjects
Sub Main()
' initialize array of employees
Dim employees As Employee() = { _
New Employee("Jason", "Red", 5000D), _
New Employee("Ashley", "Green", 7600D), _
New Employee("Matthew", "Indigo", 3587.5D), _
New Employee("James", "Indigo", 4700.77D), _
New Employee("Luke", "Indigo", 6200D), _
New Employee("Jason", "Blue", 3200D), _
New Employee("Wendy", "Brown", 4236.4D)} ' end initializer list Display(employees, "Original array") ' display all employees ' filter a range of salaries using AndAlso in a LINQ query
Dim between4K6K = _
From e In employees _
Where e.MonthlySalary >= 4000D AndAlso e.MonthlySalary <= 6000D _
Select e ' display employees making between 4000 and 6000 per month
Display(between4K6K, String.Format( _
"Employees earning in the range {0:C}-{1:C} per month", _
4000, 6000)) ' order the employees by last name, then first name with LINQ
Dim nameSorted = _
From e In employees _
Order By e.LastName, e.FirstName _
Select e Console.WriteLine("First employee when sorted by name:") ' header ' attempt to display the first result of the above LINQ query
If nameSorted.Count() = 0 Then
Console.WriteLine("not found" & vbNewLine)
Else
Console.WriteLine(nameSorted.First().ToString() & vbNewLine)
End If ' use LINQ's Distinct clause to select unique last names
Dim lastNames = _
From e In employees _
Select e.LastName _
Distinct ' display unique last names
Display(lastNames, "Unique employee last names") ' use LINQ to select first and last names
Dim names = _
From e In employees _
Select e.FirstName, Last = e.LastName Display(names, "Names only") ' display full names
End Sub ' Main ' display a sequence of any type, each on a separate line
Sub Display(Of T)(ByVal results As IEnumerable(Of T), ByVal header As String) Console.WriteLine("{0}:", header) ' display header ' display each element, separated by spaces
For Each element As T In results
Console.WriteLine(element)
Next Console.WriteLine() ' add end of line
End Sub ' Display End Module ' LINQWithArrayOfObjects ' **************************************************************************
' * (C) Copyright 1992-2009 by Deitel & Associates, Inc. and *
' * Pearson Education, Inc. All Rights Reserved. *
' * *
' * DISCLAIMER: The authors and publisher of this book have used their *
' * best efforts in preparing the book. These efforts include the *
' * development, research, and testing of the theories and programs *
' * to determine their effectiveness. The authors and publisher make *
' * no warranty of any kind, expressed or implied, with regard to these *
' * programs or to the documentation contained in these books. The authors *
' * and publisher shall not be liable in any event for incidental or *
' * consequential damages in connection with, or arising out of, the *
' * furnishing, performance, or use of these programs. *
' **************************************************************************

  二、类代码

' Fig. 9.3: Employee.vb
' Employee class with FirstName, LastName and MonthlySalary properties.
Public Class Employee
Private firstNameValue As String ' first name of employee
Private lastNameValue As String ' last name of employee
Private monthlySalaryValue As Decimal ' monthly salary of employee ' constructor initializes first name, last name and monthly salary
Public Sub New(ByVal first As String, ByVal last As String, ByVal salary As Decimal)
FirstName = first
LastName = last
MonthlySalary = salary
End Sub ' New ' property that gets and sets the employee's first name
Public Property FirstName() As String
Get
Return firstNameValue
End Get Set(ByVal value As String)
firstNameValue = value
End Set
End Property ' FirstName ' property that gets and sets the employee's last name
Public Property LastName() As String
Get
Return lastNameValue
End Get Set(ByVal value As String)
lastNameValue = value
End Set
End Property ' LastName ' property that gets and sets the employee's monthly salary
Public Property MonthlySalary() As Decimal
Get
Return monthlySalaryValue
End Get Set(ByVal value As Decimal)
If value >= 0 Then ' if salary is non-negative(非负)
monthlySalaryValue = value
End If
End Set
End Property ' MonthlySalary ' return a String containing the employee's information
' left justify each field, and give large enough spaces so all the columns line up.
Public Overrides Function ToString() As String
Return String.Format("{0,-10} {1,-10} {2,10:C}", FirstName, LastName, MonthlySalary)
End Function ' ToString
End Class ' Employee ' **************************************************************************
' * (C) Copyright 1992-2009 by Deitel & Associates, Inc. and *
' * Pearson Education, Inc. All Rights Reserved. *
' * *
' * DISCLAIMER: The authors and publisher of this book have used their *
' * best efforts in preparing the book. These efforts include the *
' * development, research, and testing of the theories and programs *
' * to determine their effectiveness. The authors and publisher make *
' * no warranty of any kind, expressed or implied, with regard to these *
' * programs or to the documentation contained in these books. The authors *
' * and publisher shall not be liable in any event for incidental or *
' * consequential damages in connection with, or arising out of, the *
' * furnishing, performance, or use of these programs. *
' **************************************************************************

三、运行结果

来源:Visual Basic 2008 how to program

活代码LINQ——06的更多相关文章

  1. 活代码LINQ——09

    一.代码 ' Fig. 9.7: LINQWithListCollection.vb ' LINQ to Objects using a List(Of String). Module LINQWit ...

  2. 活代码LINQ——01

    序言 此系列的所有代码都是运行在Win 7 64位 + Visual Basic 2008 Express Edition的环境中 之所以学习List集合类,是因为我们先前学习的数组自身的缺陷: 1. ...

  3. 活代码LINQ——08

    一.模块代码 ' Fig. 9.6: ListCollection.vb ' Generic List collection demonstration. Module ListCollection ...

  4. 活代码LINQ——07

    来源说明:https://blog.csdn.net/sha574810590/article/details/40738069 在LINQ中,数据源和查询结果实际上都是IEnumerable< ...

  5. 活代码LINQ——05

    片段代码: ' Exercise 9.3 Solution: Invoice.vb ' Invoice class. Public Class invoide ' declare variables ...

  6. 活代码LINQ——04

    一.主模块代码: 'Fig.4.16:GradeBookTest.vb 'Create and manipulate a GradeBook object;illustrate validation ...

  7. 活代码LINQ——03

    一.主模块代码: 'Fig.4.13:GradeBookTest.vb 'GradeBook constructor used to specify the course name at the 't ...

  8. 活代码LINQ——02

    一.复习基础——属性与实例变量 'Fig. 4.8:GradeBookTest.vb 'Create and manipulate a GradeBook object. Module GradeBo ...

  9. Linq to EF 与Linq to Object 使用心得

    大家都知道Linq既可以用来查询数据库对象(我这里指的是Entity FrameWork里的Model对象),也可以用来查询内存中的IEnumerable对象. 两者单独查询时都不会出现什么问题,不过 ...

随机推荐

  1. 20175307《Java程序设计》第8周学习总结

    教材学习内容总结 本周学习<Java程序设计>第十五章: 泛型: 泛型(Generics)的主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 泛型类声明:class ...

  2. c++的虚继承

    今天去面试了一家公司,真是套路深啊,套路深,原谅我是后知后觉,所以人吧总的长大,出差正常情况下都是有补贴的,为啥这部分也要算我工资一部分,名其名曰工资高,哈哈哈,自古套路方得人心 今天学习了一下c++ ...

  3. mpvue小程序开发tips(1)

    wx.setStorageSync('vipId',vipId)-----存储   wx.getStorageSync('vipId')-------读取   wx.navigateTo({ url: ...

  4. Vue学习(一)Vue目录结构

    安装教程网上一大把,可以自己搜索.记录下学习过程. 认识下Vue的目录结构,取自:https://www.cnblogs.com/dragonir/p/8711761.html vue 文件目录结构详 ...

  5. Java利用TCP编程实现简单聊天室

    前言: 本文是我在学习尚学堂JAVA300集第二季网络编程部分仿照视频内容实现而成 具体可以去尚学堂官网观看视频学习 一.实现思路 实现聊天室的最核心部分就是JAVA的TCP网络编程. TCP 传输控 ...

  6. C# 将对应的xml文档赋值给指定模型(对象)

    public static IList<T> XmlToEntityList<T>(string xml) where T : new()        {           ...

  7. SAP ERP SD模块中维护销售人员

    SAP ERP SD模块中维护销售人员信息并分配销售组织   分类: SAPHCM用户指南   在SAP ERP系统,销售和分销(SD)模块中需要创建销售人员(Sales Personnels)消息, ...

  8. java扫描文件。

    前言:一步一步来实现迷你ioc框架,前面的容器工厂也是一个铺垫,这次的扫描文件也是一个铺垫…… 需求:扫描当前项目下所有文件.包括文件夹下文件夹里面的文件.利用递归进行扫描 ScanFileUtil类 ...

  9. Win10升级惹的祸,Oracle服务全没有了,怎么解决?

    最近Win10自动升级,升级后各种服务全部没了,心已经凉了一半... 百度\Google了一大堆,无非就几种:卸载重装,还原到上一版Win10,甚至重装系统,对于正式使用的库来说,够崩溃的了.. 搜寻 ...

  10. 也谈开源GIS架构实现思想

    针对业务发展需要,需要开发设计一套具备自己独立GIS平台.然而以ArcGIS为主的GIS软件价格昂贵,在经过仔细技术与市场动向调研后,确立一套以Java语言的开源GIS软件平台.桌面CS端Udig+G ...