VB.Net/LINQ/Average

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

Get the average salary

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

End Module


 </source>