VB.Net/LINQ/TakeWhile
Версия от 19:40, 26 мая 2010; (обсуждение)
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>