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

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

一、模块代码

' 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 ' DisplayEnd 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 ' ToStringEnd 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  

转载于:https://www.cnblogs.com/xiehaofeng/p/10062742.html

你可能感兴趣的文章