Skip to main content

OrderBy - Simple 1

This sample uses orderby to sort a DataTable of words alphabetically.

Public Sub DataSetLinq28()
    Dim words = TestDS.Tables("Words2").AsEnumerable()

    Dim sortedWords = From w In words _
        Select w _
        Order By w("word")

    Console.WriteLine("The sorted list of words:")
    For Each w In sortedWords
        Console.WriteLine(w!word)
    Next
End Sub


Result:
The sorted list of words:
apple
blueberry
cherry


OrderBy - Simple 2

This sample uses orderby to sort a DataTable of words by length.

Public Sub DataSetLinq29()
    Dim words = TestDS.Tables("Words2").AsEnumerable()

    Dim sortedWords = From w In words _
        Select w _
        Order By w("word").Length

    Console.WriteLine("The sorted list of words (by length):")
    For Each w In sortedWords
        Console.WriteLine(w!word)
    Next

End Sub


Result:
The sorted list of words (by length):
apple
cherry
blueberry


OrderBy - Simple 3

This sample uses orderby to sort a DataTable of products by name.

Public Sub DataSetLinq30()
    Dim products = TestDS.Tables("Products").AsEnumerable()

    Dim sortedProducts = From p In products _
        Order By p("ProductName")

    For Each r In sortedProducts
        Console.WriteLine("Product ID: {0} ProductName: {1} ", r("ProductId"), r("ProductName"))
    Next
End Sub


Result:
Product ID: 17 ProductName: Alice Mutton
Product ID: 3 ProductName: Aniseed Syrup
Product ID: 40 ProductName: Boston Crab Meat
Product ID: 60 ProductName: Camembert Pierrot
Product ID: 18 ProductName: Carnarvon Tigers
Product ID: 1 ProductName: Chai
Product ID: 2 ProductName: Chang
Product ID: 39 ProductName: Chartreuse verte
Product ID: 4 ProductName: Chef Anton's Cajun Seasoning
Product ID: 5 ProductName: Chef Anton's Gumbo Mix
Product ID: 48 ProductName: Chocolade
Product ID: 38 ProductName: Côte de Blaye
Product ID: 58 ProductName: Escargots de Bourgogne
Product ID: 52 ProductName: Filo Mix
Product ID: 71 ProductName: Flotemysost
Product ID: 33 ProductName: Geitost
Product ID: 15 ProductName: Genen Shouyu
Product ID: 56 ProductName: Gnocchi di nonna Alice
Product ID: 31 ProductName: Gorgonzola Telino
Product ID: 6 ProductName: Grandma's Boysenberry Spread
Product ID: 37 ProductName: Gravad lax
Product ID: 24 ProductName: Guaraná Fantástica
Product ID: 69 ProductName: Gudbrandsdalsost
Product ID: 44 ProductName: Gula Malacca
Product ID: 26 ProductName: Gumbär Gummibärchen
Product ID: 22 ProductName: Gustaf's Knäckebröd
Product ID: 10 ProductName: Ikura
Product ID: 36 ProductName: Inlagd Sill
Product ID: 43 ProductName: Ipoh Coffee
Product ID: 41 ProductName: Jack's New England Clam Chowder
Product ID: 13 ProductName: Konbu
Product ID: 76 ProductName: Lakkalikööri
Product ID: 67 ProductName: Laughing Lumberjack Lager
Product ID: 74 ProductName: Longlife Tofu
Product ID: 65 ProductName: Louisiana Fiery Hot Pepper Sauce
Product ID: 66 ProductName: Louisiana Hot Spiced Okra
Product ID: 51 ProductName: Manjimup Dried Apples
Product ID: 32 ProductName: Mascarpone Fabioli
Product ID: 49 ProductName: Maxilaku
Product ID: 9 ProductName: Mishi Kobe Niku
Product ID: 72 ProductName: Mozzarella di Giovanni
Product ID: 30 ProductName: Nord-Ost Matjeshering
Product ID: 8 ProductName: Northwoods Cranberry Sauce
Product ID: 25 ProductName: NuNuCa Nuß-Nougat-Creme
Product ID: 77 ProductName: Original Frankfurter grüne Soße
Product ID: 70 ProductName: Outback Lager
Product ID: 55 ProductName: Pâté chinois
Product ID: 16 ProductName: Pavlova
Product ID: 53 ProductName: Perth Pasties
Product ID: 11 ProductName: Queso Cabrales
Product ID: 12 ProductName: Queso Manchego La Pastora
Product ID: 59 ProductName: Raclette Courdavault
Product ID: 57 ProductName: Ravioli Angelo
Product ID: 75 ProductName: Rhönbräu Klosterbier
Product ID: 73 ProductName: Röd Kaviar
Product ID: 45 ProductName: Rogede sild
Product ID: 28 ProductName: Rössle Sauerkraut
Product ID: 34 ProductName: Sasquatch Ale
Product ID: 27 ProductName: Schoggi Schokolade
Product ID: 68 ProductName: Scottish Longbreads
Product ID: 42 ProductName: Singaporean Hokkien Fried Mee
Product ID: 20 ProductName: Sir Rodney's Marmalade
Product ID: 21 ProductName: Sir Rodney's Scones
Product ID: 61 ProductName: Sirop d'érable
Product ID: 46 ProductName: Spegesild
Product ID: 35 ProductName: Steeleye Stout
Product ID: 62 ProductName: Tarte au sucre
Product ID: 19 ProductName: Teatime Chocolate Biscuits
Product ID: 29 ProductName: Thüringer Rostbratwurst
Product ID: 14 ProductName: Tofu
Product ID: 54 ProductName: Tourtière
Product ID: 23 ProductName: Tunnbröd
Product ID: 7 ProductName: Uncle Bob's Organic Dried Pears
Product ID: 50 ProductName: Valkoinen suklaa
Product ID: 63 ProductName: Vegie-spread
Product ID: 64 ProductName: Wimmers gute Semmelknödel
Product ID: 47 ProductName: Zaanse koeken


OrderBy - Comparer

This sample uses an OrderBy clause with a custom comparer to do a case-insensitive sort of the words in an array.

Public Sub DataSetLinq31()

    Dim words3 = TestDS.Tables("Words3").AsEnumerable()

    Dim sortedWords = words3.OrderBy(Function(a) a("word"), New CaseInsensitiveComparer())

    For Each dr In sortedWords
        Console.WriteLine(dr("word"))
    Next
End Sub


Result:
AbAcUs
aPPLE
BlUeBeRrY
bRaNcH
cHeRry
ClOvEr


OrderByDescending - Simple 1

This sample uses orderby and descending to sort a DataTable of doubles from highest to lowest.

Public Sub DataSetLinq32()
    Dim doubles = TestDS.Tables("Doubles").AsEnumerable()

    Dim sortedDoubles = From d In doubles _
        Select d _
        Order By d("double") Descending

    Console.WriteLine("The doubles from highest to lowest:")
    For Each d In sortedDoubles
        Console.WriteLine(d("double"))
    Next
End Sub


Result:
The doubles from highest to lowest:
4
3
2
2
2


OrderByDescending - Simple 2

This sample uses orderby to sort a DataTable of products by units in stock from highest to lowest.

Public Sub DataSetLinq33()
    Dim products = TestDS.Tables("Products").AsEnumerable()

    Dim sortedProducts = From p In products _
        Select p _
        Order By p("UnitsInStock") Descending

    For Each r In sortedProducts
        Console.WriteLine("Product ID: {0} UnitsInStock: {1} ", r("ProductId"), r("UnitsInStock"))
    Next
End Sub


Result:
Product ID: 75 UnitsInStock: 125
Product ID: 40 UnitsInStock: 123
Product ID: 6 UnitsInStock: 120
Product ID: 55 UnitsInStock: 115
Product ID: 61 UnitsInStock: 113
Product ID: 33 UnitsInStock: 112
Product ID: 36 UnitsInStock: 112
Product ID: 34 UnitsInStock: 111
Product ID: 22 UnitsInStock: 104
Product ID: 73 UnitsInStock: 101
Product ID: 46 UnitsInStock: 95
Product ID: 12 UnitsInStock: 86
Product ID: 41 UnitsInStock: 85
Product ID: 59 UnitsInStock: 79
Product ID: 25 UnitsInStock: 76
Product ID: 65 UnitsInStock: 76
Product ID: 39 UnitsInStock: 69
Product ID: 50 UnitsInStock: 65
Product ID: 58 UnitsInStock: 62
Product ID: 23 UnitsInStock: 61
Product ID: 76 UnitsInStock: 57
Product ID: 4 UnitsInStock: 53
Product ID: 67 UnitsInStock: 52
Product ID: 27 UnitsInStock: 49
Product ID: 18 UnitsInStock: 42
Product ID: 20 UnitsInStock: 40
Product ID: 1 UnitsInStock: 39
Product ID: 15 UnitsInStock: 39
Product ID: 52 UnitsInStock: 38
Product ID: 47 UnitsInStock: 36
Product ID: 57 UnitsInStock: 36
Product ID: 14 UnitsInStock: 35
Product ID: 77 UnitsInStock: 32
Product ID: 10 UnitsInStock: 31
Product ID: 9 UnitsInStock: 29
Product ID: 16 UnitsInStock: 29
Product ID: 44 UnitsInStock: 27
Product ID: 28 UnitsInStock: 26
Product ID: 42 UnitsInStock: 26
Product ID: 69 UnitsInStock: 26
Product ID: 71 UnitsInStock: 26
Product ID: 19 UnitsInStock: 25
Product ID: 13 UnitsInStock: 24
Product ID: 63 UnitsInStock: 24
Product ID: 11 UnitsInStock: 22
Product ID: 64 UnitsInStock: 22
Product ID: 54 UnitsInStock: 21
Product ID: 56 UnitsInStock: 21
Product ID: 24 UnitsInStock: 20
Product ID: 35 UnitsInStock: 20
Product ID: 51 UnitsInStock: 20
Product ID: 60 UnitsInStock: 19
Product ID: 2 UnitsInStock: 17
Product ID: 38 UnitsInStock: 17
Product ID: 43 UnitsInStock: 17
Product ID: 62 UnitsInStock: 17
Product ID: 7 UnitsInStock: 15
Product ID: 26 UnitsInStock: 15
Product ID: 48 UnitsInStock: 15
Product ID: 70 UnitsInStock: 15
Product ID: 72 UnitsInStock: 14
Product ID: 3 UnitsInStock: 13
Product ID: 37 UnitsInStock: 11
Product ID: 30 UnitsInStock: 10
Product ID: 49 UnitsInStock: 10
Product ID: 32 UnitsInStock: 9
Product ID: 8 UnitsInStock: 6
Product ID: 68 UnitsInStock: 6
Product ID: 45 UnitsInStock: 5
Product ID: 66 UnitsInStock: 4
Product ID: 74 UnitsInStock: 4
Product ID: 21 UnitsInStock: 3
Product ID: 5 UnitsInStock: 0
Product ID: 17 UnitsInStock: 0
Product ID: 29 UnitsInStock: 0
Product ID: 31 UnitsInStock: 0
Product ID: 53 UnitsInStock: 0


OrderByDescending - Comparer

This sample uses an OrderBy clause with a custom comparer to do a case-insensitive descending sort of the words in an array.

Public Sub DataSetLinq34()

    Dim words3 = TestDS.Tables("Words3").AsEnumerable()

    Dim sortedWords = words3.OrderByDescending(Function(a) a("word"), New CaseInsensitiveComparer())

    For Each dr In sortedWords
        Console.WriteLine(dr("word"))
    Next
End Sub


Result:
ClOvEr
cHeRry
bRaNcH
BlUeBeRrY
aPPLE
AbAcUs


ThenBy - Simple

This sample uses a compound orderby to sort a DataTable of digits, first by length of their name, and then alphabetically by the name itself.

Public Sub DataSetLinq35()
    Dim digits = TestDS.Tables("Digits").AsEnumerable()

    Dim sortedDigits = From d In digits _
        Select Digit = d("digit"), DigLength = CStr(d("digit")).Length _
        Order By DigLength, Digit

    Console.WriteLine("Sorted digits:")
    For Each d In sortedDigits
        Console.WriteLine(d.Digit)
    Next
End Sub


Result:
Sorted digits:
one
six
two
five
four
nine
zero
eight
seven
three


ThenBy - Comparer

This sample uses an OrderBy and a ThenBy clause with a custom comparer to sort first by word length and then by a case-insensitive sort of the words in an array.

Public Sub DataSetLinq36()

    Dim words3 = TestDS.Tables("Words3").AsEnumerable

    Dim sortedWords = words3.OrderBy( _
                        Function(a) a.Field(Of String)("word").Length).ThenBy( _
                        Function(a) a.Field(Of String)("word"), New CaseInsensitiveComparer())

    For Each dr In sortedWords
        Console.WriteLine(dr("word"))
    Next
End Sub


Result:
aPPLE
AbAcUs
bRaNcH
cHeRry
ClOvEr
BlUeBeRrY


ThenByDescending - Simple

This sample uses a compound orderby to sort a DataTable of products, first by category, and then by unit price, from highest to lowest.

Public Sub DataSetLinq37()
    Dim products = TestDS.Tables("Products").AsEnumerable()

    Dim sortedProducts = From p In products _
        Select p _
        Order By p("Category"), p("UnitPrice") Descending

    For Each r In sortedProducts
        Console.WriteLine("Product ID: {0} Category: {1} UnitsInStock: {2} ", r("ProductId"), r("Category"), r("UnitsInStock"))
    Next
End Sub


Result:
Product ID: 38 Category: Beverages UnitsInStock: 17
Product ID: 43 Category: Beverages UnitsInStock: 17
Product ID: 2 Category: Beverages UnitsInStock: 17
Product ID: 1 Category: Beverages UnitsInStock: 39
Product ID: 35 Category: Beverages UnitsInStock: 20
Product ID: 39 Category: Beverages UnitsInStock: 69
Product ID: 76 Category: Beverages UnitsInStock: 57
Product ID: 70 Category: Beverages UnitsInStock: 15
Product ID: 34 Category: Beverages UnitsInStock: 111
Product ID: 67 Category: Beverages UnitsInStock: 52
Product ID: 75 Category: Beverages UnitsInStock: 125
Product ID: 24 Category: Beverages UnitsInStock: 20
Product ID: 63 Category: Condiments UnitsInStock: 24
Product ID: 8 Category: Condiments UnitsInStock: 6
Product ID: 61 Category: Condiments UnitsInStock: 113
Product ID: 6 Category: Condiments UnitsInStock: 120
Product ID: 4 Category: Condiments UnitsInStock: 53
Product ID: 5 Category: Condiments UnitsInStock: 0
Product ID: 65 Category: Condiments UnitsInStock: 76
Product ID: 44 Category: Condiments UnitsInStock: 27
Product ID: 66 Category: Condiments UnitsInStock: 4
Product ID: 15 Category: Condiments UnitsInStock: 39
Product ID: 77 Category: Condiments UnitsInStock: 32
Product ID: 3 Category: Condiments UnitsInStock: 13
Product ID: 20 Category: Confections UnitsInStock: 40
Product ID: 62 Category: Confections UnitsInStock: 17
Product ID: 27 Category: Confections UnitsInStock: 49
Product ID: 26 Category: Confections UnitsInStock: 15
Product ID: 49 Category: Confections UnitsInStock: 10
Product ID: 16 Category: Confections UnitsInStock: 29
Product ID: 50 Category: Confections UnitsInStock: 65
Product ID: 25 Category: Confections UnitsInStock: 76
Product ID: 48 Category: Confections UnitsInStock: 15
Product ID: 68 Category: Confections UnitsInStock: 6
Product ID: 21 Category: Confections UnitsInStock: 3
Product ID: 47 Category: Confections UnitsInStock: 36
Product ID: 19 Category: Confections UnitsInStock: 25
Product ID: 59 Category: Dairy Products UnitsInStock: 79
Product ID: 12 Category: Dairy Products UnitsInStock: 86
Product ID: 69 Category: Dairy Products UnitsInStock: 26
Product ID: 72 Category: Dairy Products UnitsInStock: 14
Product ID: 60 Category: Dairy Products UnitsInStock: 19
Product ID: 32 Category: Dairy Products UnitsInStock: 9
Product ID: 71 Category: Dairy Products UnitsInStock: 26
Product ID: 11 Category: Dairy Products UnitsInStock: 22
Product ID: 31 Category: Dairy Products UnitsInStock: 0
Product ID: 33 Category: Dairy Products UnitsInStock: 112
Product ID: 56 Category: Grains/Cereals UnitsInStock: 21
Product ID: 64 Category: Grains/Cereals UnitsInStock: 22
Product ID: 22 Category: Grains/Cereals UnitsInStock: 104
Product ID: 57 Category: Grains/Cereals UnitsInStock: 36
Product ID: 42 Category: Grains/Cereals UnitsInStock: 26
Product ID: 23 Category: Grains/Cereals UnitsInStock: 61
Product ID: 52 Category: Grains/Cereals UnitsInStock: 38
Product ID: 29 Category: Meat/Poultry UnitsInStock: 0
Product ID: 9 Category: Meat/Poultry UnitsInStock: 29
Product ID: 17 Category: Meat/Poultry UnitsInStock: 0
Product ID: 53 Category: Meat/Poultry UnitsInStock: 0
Product ID: 55 Category: Meat/Poultry UnitsInStock: 115
Product ID: 54 Category: Meat/Poultry UnitsInStock: 21
Product ID: 51 Category: Produce UnitsInStock: 20
Product ID: 28 Category: Produce UnitsInStock: 26
Product ID: 7 Category: Produce UnitsInStock: 15
Product ID: 14 Category: Produce UnitsInStock: 35
Product ID: 74 Category: Produce UnitsInStock: 4
Product ID: 18 Category: Seafood UnitsInStock: 42
Product ID: 10 Category: Seafood UnitsInStock: 31
Product ID: 37 Category: Seafood UnitsInStock: 11
Product ID: 30 Category: Seafood UnitsInStock: 10
Product ID: 36 Category: Seafood UnitsInStock: 112
Product ID: 40 Category: Seafood UnitsInStock: 123
Product ID: 73 Category: Seafood UnitsInStock: 101
Product ID: 58 Category: Seafood UnitsInStock: 62
Product ID: 46 Category: Seafood UnitsInStock: 95
Product ID: 41 Category: Seafood UnitsInStock: 85
Product ID: 45 Category: Seafood UnitsInStock: 5
Product ID: 13 Category: Seafood UnitsInStock: 24


ThenByDescending - Comparer

This sample uses an OrderBy and a ThenBy clause with a custom comparer to sort first by word length and then by a case-insensitive descending sort of the words in an array.

Public Sub DataSetLinq38()

    Dim words3 = TestDS.Tables("Words3").AsEnumerable()

    Dim sortedWords = words3.OrderBy(Function(a) a("word").Length).ThenByDescending( _
                                     Function(a) a("word"), New CaseInsensitiveComparer())

    For Each dr In sortedWords
        Console.WriteLine(dr("word"))
    Next
End Sub


Result:
aPPLE
ClOvEr
cHeRry
bRaNcH
AbAcUs
BlUeBeRrY


Reverse

This sample uses Reverse to create a list of all digits in the DataTable whose second letter is 'i' that is reversed from the order in the original array.

Public Sub DataSetLinq39()
    Dim digits = TestDS.Tables("Digits").AsEnumerable()

    Dim reversedIDigits = (From d In digits _
                           Where d("digit")(1) = "i").Reverse()

    Console.WriteLine("A backwards list of the digits with a second character of 'i':")
    For Each d In reversedIDigits
        Console.WriteLine(d("digit"))
    Next
End Sub


Result:
A backwards list of the digits with a second character of 'i':
nine
eight
six
five