VB.Net/LINQ/Average

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

Get the average salary

  

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, s In salaries _
            Where p.ID = 1 AndAlso p.ID = s.IDPerson _
            Select s.SalaryYear
        Console.WriteLine(query.Average())
    End Sub
End Module