VB.Net/LINQ/TakeWhile — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 12:41, 26 мая 2010
Take While Example
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