VB.Net/LINQ/TakeWhile

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

Take While Example

<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} _
       })
       TakeWhileExample()


   End Sub
   Function takeFunc(ByVal n As Integer, ByVal index As Integer) As Boolean
       Return (n >= index)
   End Function
   Function skipFunc(ByVal n As Integer, ByVal index As Integer) As Boolean
       Return (n >= index)
   End Function
   Public Sub TakeWhileExample()
       Dim numbers As Integer() = New Integer() {9, 3, 5, 4, 2, 6, 7, 1, 8}
       Dim takeDelegate As New Func(Of Integer, Integer, Boolean)(AddressOf takeFunc)
       Dim skipDelegate As New Func(Of Integer, Integer, Boolean)(AddressOf skipFunc)
       Dim query = numbers.TakeWhile(takeDelegate)
       Dim query2 = numbers.SkipWhile(skipDelegate)
   End Sub

End Module


 </source>