zoukankan      html  css  js  c++  java
  • 活代码LINQ——06

    一、模块代码

    ' 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  

  • 相关阅读:
    SQL带参数拼接
    ASP.NET+ashx+jQuery动态添加删除表格
    ASP.NET中常用重置数据的方法
    多表联合查询
    zTree在Asp.Net中的使用
    ASP.NET中常用方法
    DropDownList
    (转)一个form表单实现提交多个action
    svn简单用法
    每日三问
  • 原文地址:https://www.cnblogs.com/xiehaofeng/p/10062742.html
Copyright © 2011-2022 走看看