VB.NET and Lambda – Filter elements from object collection using where clause

Here’s a sample code snippet demonstrating how to filter elements from a list of objects using the where clause using Lambda in VB.NET. This sample gets all the employees who salary is greater than 20000 GBP.

How to Filter Employees List whose salary is greater than 20000 GBP using Lambda in VB.NET ?

Namespace AbundantcodeVisualBasicSample
    Class Program
        Public Shared Sub Main(args As String())
            Dim employees As New List(Of Employee)()
            employees.Add(New Employee() With { _
                .Name = "Michael", _
                .Age = 55, _
                .Salary = 80000 _
            })
            employees.Add(New Employee() With { _
                 .Name = "Steve", _
                 .Age = 23, _
                 .Salary = 19000 _
            })
            employees.Add(New Employee() With { _
                 .Name = "John", _
                 .Age = 55, _
                 .Salary = 23000 _
            })
            ' Lambda expression  to filter employees using Where
            Dim output = employees.Where(Function(a) a.Salary > 20000)
            Debug.WriteLine("Employees whose salary is greater than 20000 pounds")
            For Each item As Employee In output
                Debug.WriteLine(item.Name)
            Next
        End Sub
    End Class
    Class Employee
        Public Property Name() As String
            Get
                Return m_Name
            End Get
            Set
                m_Name = Value
            End Set
        End Property
        Private m_Name As String
        Public Property Age() As Integer
            Get
                Return m_Age
            End Get
            Set
                m_Age = Value
            End Set
        End Property
        Private m_Age As Integer
        Public Property Salary() As Decimal
            Get
                Return m_Salary
            End Get
            Set
                m_Salary = Value
            End Set
        End Property
        Private m_Salary As Decimal
    End Class
End Namespace

Output

Employees whose salary is greater than 20000 pounds

Michael

John