HomeSearch

VB.NET Sort List (Lambda That Calls CompareTo)

Use Sort and Reverse on Lists. Sort is called with a lambda that uses CompareTo.
Sort List. A List can be sorted. The List type has a useful subroutine called Sort that will sort your List either by a default sorting order or with a custom one. And we look at some examples of Sort.
Sort with lambda. This is the most advanced example on this page. Here, we create a List of strings, and then call Sort with a lambda expression argument. Our lambda expression begins with the Function keyword and receives two String parameters.

Next: It returns the result of CompareTo on the Length properties of the String parameters.

Tip: This means the List is sorted in ascending order by the lengths of its strings, from shortest to longest.

Lambda
VB.NET program that uses Sort function with lambda Module Module1 Sub Main() Dim l As List(Of String) = New List(Of String) l.Add("mississippi") l.Add("indus") l.Add("danube") l.Add("nile") ' Sort using lambda expression. l.Sort(Function(elementA As String, elementB As String) Return elementA.Length.CompareTo(elementB.Length) End Function) For Each element As String In l Console.WriteLine(element) Next End Sub End Module Output nile indus danube mississippi
Simple example. This example first creates a List of three String instances. Then it invokes the Sort subroutine. This subroutine does not return a value. Instead it changes the List to be sorted.

Finally: We loop through the sorted List—the strings are now in alphabetical order.

VB.NET program that uses Sort function on List Module Module1 Sub Main() Dim l As List(Of String) = New List(Of String) l.Add("tuna") l.Add("velvetfish") l.Add("angler") ' Sort alphabetically. l.Sort() For Each element As String In l Console.WriteLine(element) Next End Sub End Module Output angler tuna velvetfish
Reverse List. The Reverse subroutine is similar in some ways to the Sort subroutine. It inverts the order of the elements in the List from their original order. It does no sorting. As with Sort, you do not need to assign anything to the result.
VB.NET program that uses Reverse function Module Module1 Sub Main() Dim l As List(Of String) = New List(Of String) l.Add("anchovy") l.Add("barracuda") l.Add("bass") l.Add("viperfish") ' Reverse list. l.Reverse() For Each element As String In l Console.WriteLine(element) Next End Sub End Module Output viperfish bass barracuda anchovy
Summary. This article showed how you can sort the elements in a List using the parameterless Sort subroutine and also with a lambda expression. We also saw how to Reverse the order of the elements in your List.

Note: Instead of using String instances in your List, you can use other types such as Integer or even Class types.

© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
Home
Dot Net Perls