VB.Net/LINQ/Order

Материал из VB Эксперт
Перейти к: навигация, поиск

Order all the cars by PetName

<source lang="vbnet"> Public Class Car

 Public PetName As String = String.Empty
 Public Color As String = String.Empty
 Public Speed As Integer
 Public Make As String = String.Empty
 Public Overloads Overrides Function ToString() As String
   Return String.Format("Make={0}, Color={1}, Speed={2}, PetName={3}", Make, Color, Speed, PetName)
 End Function

End Class Module Program

 Sub Main()
       Dim myCars As New List(Of Car)(New Car() { _
   New Car With {.PetName = "D", .Color = "Silver", .Speed = 100,.Make = "BMW"}, _
   New Car With {.PetName = "C", .Color = "Tan", .Speed = 90, .Make = "BMW"}, _
   New Car With {.PetName = "B", .Color = "Rust", .Speed = 5, .Make = "Yugo"}, _
   New Car With {.PetName = "A", .Color = "White", .Speed = 43, .Make = "Ford"}})
   Dim subset = From c In myCars Order By c.PetName Select c
   For Each c As Car In subset
     Console.WriteLine("Car {0}", c)
   Next

 End Sub

End Module


 </source>


Order by two properties

<source lang="vbnet"> Imports System.Reflection Imports System

Public Class Role

   Public ID As Integer
   Public RoleDescription As String

End Class Public Class Person

   Public ID As Integer
   Public IDRole As Integer
   Public LastName As String
   Public FirstName As String

End Class Public Class Salary

   Public IDPerson As Integer
   Public Year As Integer
   Public SalaryYear As Double

End Class Module Module1

   Sub Main()
       Dim people As New List(Of Person)(New Person() { _
           New Person With {.ID = 1, .IDRole = 1, .LastName = "A", .FirstName = "Brad"}, _
           New Person With {.ID = 2, .IDRole = 2, .LastName = "G", .FirstName = "Tom"} _
       })
       Dim roles As New List(Of Role)(New Role() { _
           New Role With {.ID = 1, .RoleDescription = "Manager"}, _
           New Role With {.ID = 2, .RoleDescription = "Developer"} _
       })
       Dim salaries As New List(Of Salary)(New Salary() { _
               New Salary With {.IDPerson = 1, .Year = 2004, .SalaryYear = 10000.0}, _
               New Salary With {.IDPerson = 1, .Year = 2005, .SalaryYear = 15000.0}, _
               New Salary With {.IDPerson = 2, .Year = 2005, .SalaryYear = 15000.0} _
       })
       Dim query = From p In people _
           Select p _
           Order By p.FirstName, p.LastName
   End Sub

End Module


 </source>