Skip to main content

LINQ To DataSet Samples - Projection Operators

On This Page

Select - Simple 1
Select - Simple 2
Select - Transformation
Select - Anonymous Types 1
Select - Anonymous Types 2
Select - Anonymous Types 3
Select - Indexed
Select - Filtered
SelectMany - Compound from 1
SelectMany - Compound from 2
SelectMany - Compound from 3
SelectMany - from Assignment
SelectMany - Multiple From
SelectMany - Indexed

Select - Simple 1

This sample uses select to produce a sequence of ints one higher than those in an existing DataTable.

Public Sub DataSetLinq6()
    Dim numbers = TestDS.Tables("Numbers").AsEnumerable()

    Dim numsPlusOne = From n In numbers _
        Select n("number") + 1

    Console.WriteLine("Numbers + 1:")
    For Each i In numsPlusOne
        Console.WriteLine(i)
    Next
End Sub


Result:
Numbers + 1:
6
5
2
4
10
9
7
8
3
1


Select - Simple 2

This sample uses select to return a sequence of just the names of a list of products.

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

    Dim productNames = From p In products _
        Select p("ProductName")

    Console.WriteLine("Product Names:")
    For Each productName In productNames
        Console.WriteLine(productName)
    Next
End Sub


Result:
Product Names:
Chai
Chang
Aniseed Syrup
Chef Anton's Cajun Seasoning
Chef Anton's Gumbo Mix
Grandma's Boysenberry Spread
Uncle Bob's Organic Dried Pears
Northwoods Cranberry Sauce
Mishi Kobe Niku
Ikura
Queso Cabrales
Queso Manchego La Pastora
Konbu
Tofu
Genen Shouyu
Pavlova
Alice Mutton
Carnarvon Tigers
Teatime Chocolate Biscuits
Sir Rodney's Marmalade
Sir Rodney's Scones
Gustaf's Knäckebröd
Tunnbröd
Guaraná Fantástica
NuNuCa Nuß-Nougat-Creme
Gumbär Gummibärchen
Schoggi Schokolade
Rössle Sauerkraut
Thüringer Rostbratwurst
Nord-Ost Matjeshering
Gorgonzola Telino
Mascarpone Fabioli
Geitost
Sasquatch Ale
Steeleye Stout
Inlagd Sill
Gravad lax
Côte de Blaye
Chartreuse verte
Boston Crab Meat
Jack's New England Clam Chowder
Singaporean Hokkien Fried Mee
Ipoh Coffee
Gula Malacca
Rogede sild
Spegesild
Zaanse koeken
Chocolade
Maxilaku
Valkoinen suklaa
Manjimup Dried Apples
Filo Mix
Perth Pasties
Tourtière
Pâté chinois
Gnocchi di nonna Alice
Ravioli Angelo
Escargots de Bourgogne
Raclette Courdavault
Camembert Pierrot
Sirop d'érable
Tarte au sucre
Vegie-spread
Wimmers gute Semmelknödel
Louisiana Fiery Hot Pepper Sauce
Louisiana Hot Spiced Okra
Laughing Lumberjack Lager
Scottish Longbreads
Gudbrandsdalsost
Outback Lager
Flotemysost
Mozzarella di Giovanni
Röd Kaviar
Longlife Tofu
Rhönbräu Klosterbier
Lakkalikööri
Original Frankfurter grüne Soße


Select - Transformation

This sample uses select to produce a sequence of strings representing the text version of a sequence of ints.

Public Sub DataSetLinq8()
    Dim numbers = TestDS.Tables("Numbers").AsEnumerable()
    Dim strings As String() = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}

    Dim textNums = numbers.Select(Function(p) strings(p("number")))

    Console.WriteLine("Number strings:")
    For Each s In textNums
        Console.WriteLine(s)
    Next
End Sub


Result:
Number strings:
five
four
one
three
nine
eight
six
seven
two
zero


Select - Anonymous Types 1

This sample uses select to produce a sequence of the uppercase and lowercase versions of each word in the original DataTable.

Public Sub DataSetLinq9()
    Dim words = TestDS.Tables("Words").AsEnumerable()

    Dim upperLowerWords = From w In words _
        Select New With {.Upper = CStr(w("word")).ToUpper(), .Lower = CStr(w("word")).ToLower()}

    For Each ul In upperLowerWords
        Console.WriteLine("Uppercase: " & ul.Upper & ", Lowercase: " & ul.Lower)
    Next
End Sub


Result:
Uppercase: APPLE, Lowercase: apple
Uppercase: BLUEBERRY, Lowercase: blueberry
Uppercase: CHERRY, Lowercase: cherry


Select - Anonymous Types 2

This sample uses select to produce a sequence containing text representations of digits and whether their length is even or odd.

Public Sub DataSetLinq106()

    'create a table with a single row
    Dim singleRowTable = New DataTable("SingleRowTable")
    singleRowTable.Columns.Add("id", GetType(Integer))
    singleRowTable.Rows.Add(New Object() {1})

    Dim singleRow = singleRowTable.AsEnumerable().Single()

    Console.WriteLine(singleRow IsNot Nothing)
End Sub


Result:
The digit five is odd.
The digit four is even.
The digit one is odd.
The digit three is odd.
The digit nine is odd.
The digit eight is even.
The digit six is even.
The digit seven is odd.
The digit two is even.
The digit zero is even.


Select - Anonymous Types 3

This sample uses select to produce a sequence containing some column values from Product DataRows, including UnitPrice which is renamed to Price in the resulting type.

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

    Dim productInfos = From p In products _
        Select ProductName = p("ProductName"), Category = p("Category"), Price = p("UnitPrice")

    Console.WriteLine("Product Info:")
    For Each productInfo In productInfos
        Console.WriteLine(productInfo.ProductName & " is in the category " & _
            productInfo.Category & " and costs " & productInfo.Price & " per un")
    Next
End Sub


Result:
Product Info:
Chai is in the category Beverages and costs 18 per un
Chang is in the category Beverages and costs 19 per un
Aniseed Syrup is in the category Condiments and costs 10 per un
Chef Anton's Cajun Seasoning is in the category Condiments and costs 22 per un
Chef Anton's Gumbo Mix is in the category Condiments and costs 21.35 per un
Grandma's Boysenberry Spread is in the category Condiments and costs 25 per un
Uncle Bob's Organic Dried Pears is in the category Produce and costs 30 per un
Northwoods Cranberry Sauce is in the category Condiments and costs 40 per un
Mishi Kobe Niku is in the category Meat/Poultry and costs 97 per un
Ikura is in the category Seafood and costs 31 per un
Queso Cabrales is in the category Dairy Products and costs 21 per un
Queso Manchego La Pastora is in the category Dairy Products and costs 38 per un
Konbu is in the category Seafood and costs 6 per un
Tofu is in the category Produce and costs 23.25 per un
Genen Shouyu is in the category Condiments and costs 15.5 per un
Pavlova is in the category Confections and costs 17.45 per un
Alice Mutton is in the category Meat/Poultry and costs 39 per un
Carnarvon Tigers is in the category Seafood and costs 62.5 per un
Teatime Chocolate Biscuits is in the category Confections and costs 9.2 per un
Sir Rodney's Marmalade is in the category Confections and costs 81 per un
Sir Rodney's Scones is in the category Confections and costs 10 per un
Gustaf's Knäckebröd is in the category Grains/Cereals and costs 21 per un
Tunnbröd is in the category Grains/Cereals and costs 9 per un
Guaraná Fantástica is in the category Beverages and costs 4.5 per un
NuNuCa Nuß-Nougat-Creme is in the category Confections and costs 14 per un
Gumbär Gummibärchen is in the category Confections and costs 31.23 per un
Schoggi Schokolade is in the category Confections and costs 43.9 per un
Rössle Sauerkraut is in the category Produce and costs 45.6 per un
Thüringer Rostbratwurst is in the category Meat/Poultry and costs 123.79 per un
Nord-Ost Matjeshering is in the category Seafood and costs 25.89 per un
Gorgonzola Telino is in the category Dairy Products and costs 12.5 per un
Mascarpone Fabioli is in the category Dairy Products and costs 32 per un
Geitost is in the category Dairy Products and costs 2.5 per un
Sasquatch Ale is in the category Beverages and costs 14 per un
Steeleye Stout is in the category Beverages and costs 18 per un
Inlagd Sill is in the category Seafood and costs 19 per un
Gravad lax is in the category Seafood and costs 26 per un
Côte de Blaye is in the category Beverages and costs 263.5 per un
Chartreuse verte is in the category Beverages and costs 18 per un
Boston Crab Meat is in the category Seafood and costs 18.4 per un
Jack's New England Clam Chowder is in the category Seafood and costs 9.65 per un
Singaporean Hokkien Fried Mee is in the category Grains/Cereals and costs 14 per un
Ipoh Coffee is in the category Beverages and costs 46 per un
Gula Malacca is in the category Condiments and costs 19.45 per un
Rogede sild is in the category Seafood and costs 9.5 per un
Spegesild is in the category Seafood and costs 12 per un
Zaanse koeken is in the category Confections and costs 9.5 per un
Chocolade is in the category Confections and costs 12.75 per un
Maxilaku is in the category Confections and costs 20 per un
Valkoinen suklaa is in the category Confections and costs 16.25 per un
Manjimup Dried Apples is in the category Produce and costs 53 per un
Filo Mix is in the category Grains/Cereals and costs 7 per un
Perth Pasties is in the category Meat/Poultry and costs 32.8 per un
Tourtière is in the category Meat/Poultry and costs 7.45 per un
Pâté chinois is in the category Meat/Poultry and costs 24 per un
Gnocchi di nonna Alice is in the category Grains/Cereals and costs 38 per un
Ravioli Angelo is in the category Grains/Cereals and costs 19.5 per un
Escargots de Bourgogne is in the category Seafood and costs 13.25 per un
Raclette Courdavault is in the category Dairy Products and costs 55 per un
Camembert Pierrot is in the category Dairy Products and costs 34 per un
Sirop d'érable is in the category Condiments and costs 28.5 per un
Tarte au sucre is in the category Confections and costs 49.3 per un
Vegie-spread is in the category Condiments and costs 43.9 per un
Wimmers gute Semmelknödel is in the category Grains/Cereals and costs 33.25 per un
Louisiana Fiery Hot Pepper Sauce is in the category Condiments and costs 21.05 per un
Louisiana Hot Spiced Okra is in the category Condiments and costs 17 per un
Laughing Lumberjack Lager is in the category Beverages and costs 14 per un
Scottish Longbreads is in the category Confections and costs 12.5 per un
Gudbrandsdalsost is in the category Dairy Products and costs 36 per un
Outback Lager is in the category Beverages and costs 15 per un
Flotemysost is in the category Dairy Products and costs 21.5 per un
Mozzarella di Giovanni is in the category Dairy Products and costs 34.8 per un
Röd Kaviar is in the category Seafood and costs 15 per un
Longlife Tofu is in the category Produce and costs 10 per un
Rhönbräu Klosterbier is in the category Beverages and costs 7.75 per un
Lakkalikööri is in the category Beverages and costs 18 per un
Original Frankfurter grüne Soße is in the category Condiments and costs 13 per un


Select - Indexed

This sample uses an indexed Select clause to determine if the value of ints in an array match their position in the array.

Public Sub DataSetLinq12()


    Dim numbers As IEnumerable(Of DataRow) = TestDS.Tables("Numbers").AsEnumerable()

    Dim numsInPlace = numbers.Select( _
                        Function(num, index) New With {.Num = num("number"), _
                                                       .InPlace = (num("number") = index)})

    Console.WriteLine("Number: In-place?")
    For Each n In numsInPlace
        Console.WriteLine("{0}: {1}", n.Num, n.InPlace)
    Next
End Sub


Result:
Number: In-place?
5: False
4: False
1: False
3: True
9: False
8: False
6: True
7: True
2: False
0: False


Select - Filtered

This sample combines select and where to make a simple query that returns the text form of each digit less than 5.

Public Sub DataSetLinq13()
    Dim numbers = TestDS.Tables("Numbers").AsEnumerable()
    Dim digits = TestDS.Tables("Digits")

    Dim lowNums = From n In numbers _
        Where n("number") < 5 _
        Select digits.Rows(n("number"))("digit")

    Console.WriteLine("Numbers < 5:")
    For Each num In lowNums
        Console.WriteLine(num)
    Next
End Sub


Result:
Numbers < 5:
four
one
three
two
zero


SelectMany - Compound from 1

This sample uses a compound from clause to make a query that returns all pairs of numbers from both DataTables such that the number from numbersA is less than the number from numbersB.

Public Sub DataSetLinq14()
    Dim numbersA = TestDS.Tables("NumbersA").AsEnumerable()
    Dim numbersB = TestDS.Tables("NumbersB").AsEnumerable()

    Dim pairs = From a In numbersA, b In numbersB _
        Where a("number") < b("number") _
        Select numberA = a("number"), numberB = b("number")

    Console.WriteLine("Pairs where a < b:")
    For Each pair In pairs
        Console.WriteLine(pair.numberA & " is less than " & pair.numberB)
    Next
End Sub


Result:
Pairs where a < b:
0 is less than 1
0 is less than 3
0 is less than 5
0 is less than 7
0 is less than 8
2 is less than 3
2 is less than 5
2 is less than 7
2 is less than 8
4 is less than 5
4 is less than 7
4 is less than 8
5 is less than 7
5 is less than 8
6 is less than 7
6 is less than 8


SelectMany - Compound from 2

This sample uses a compound from clause to select all orders where the order total is less than 500.00.

Public Sub DataSetLinq15()
    Dim customers = TestDS.Tables("Customers").AsEnumerable()

    'We use the ! syntax to automatically infer the column names for the anonymous type
    Dim orders = From c In customers, o In c.GetChildRows("CustomersOrders") _
        Where o!Total < 500.0 _
        Select c!CustomerID, o!OrderID, o!Total

    For Each x In orders
        Console.WriteLine("CustomerID: {0}, OrderID: {1}, Total: {2}", x.CustomerID, x.OrderID, x.Total)
    Next
End Sub


Result:
CustomerID: ALFKI, OrderID: 10702, Total: 330.00
CustomerID: ALFKI, OrderID: 10952, Total: 471.20
CustomerID: ANATR, OrderID: 10308, Total: 88.80
CustomerID: ANATR, OrderID: 10625, Total: 479.75
CustomerID: ANATR, OrderID: 10759, Total: 320.00
CustomerID: ANTON, OrderID: 10365, Total: 403.20
CustomerID: ANTON, OrderID: 10682, Total: 375.50
CustomerID: AROUT, OrderID: 10355, Total: 480.00
CustomerID: AROUT, OrderID: 10453, Total: 407.70
CustomerID: AROUT, OrderID: 10741, Total: 228.00
CustomerID: AROUT, OrderID: 10743, Total: 319.20
CustomerID: AROUT, OrderID: 10793, Total: 191.10
CustomerID: AROUT, OrderID: 10864, Total: 282.00
CustomerID: AROUT, OrderID: 10920, Total: 390.00
CustomerID: AROUT, OrderID: 11016, Total: 491.50
CustomerID: BERGS, OrderID: 10445, Total: 174.90
CustomerID: BERGS, OrderID: 10689, Total: 472.50
CustomerID: BERGS, OrderID: 10778, Total: 96.50
CustomerID: BLAUS, OrderID: 10501, Total: 149.00
CustomerID: BLAUS, OrderID: 10509, Total: 136.80
CustomerID: BLAUS, OrderID: 10582, Total: 330.00
CustomerID: BLAUS, OrderID: 10614, Total: 464.00
CustomerID: BLONP, OrderID: 10628, Total: 450.00
CustomerID: BOLID, OrderID: 10970, Total: 224.00
CustomerID: BONAP, OrderID: 10331, Total: 88.50
CustomerID: BONAP, OrderID: 10730, Total: 484.26
CustomerID: BONAP, OrderID: 10732, Total: 360.00
CustomerID: BONAP, OrderID: 10940, Total: 360.00
CustomerID: BSBEV, OrderID: 10289, Total: 479.40
CustomerID: BSBEV, OrderID: 10484, Total: 386.20
CustomerID: BSBEV, OrderID: 10538, Total: 139.80
CustomerID: BSBEV, OrderID: 10539, Total: 355.50
CustomerID: BSBEV, OrderID: 10578, Total: 477.00
CustomerID: BSBEV, OrderID: 10599, Total: 493.00
CustomerID: BSBEV, OrderID: 10947, Total: 220.00
CustomerID: CACTU, OrderID: 10521, Total: 225.50
CustomerID: CACTU, OrderID: 10782, Total: 12.50
CustomerID: CACTU, OrderID: 10819, Total: 477.00
CustomerID: CACTU, OrderID: 10881, Total: 150.00
CustomerID: CACTU, OrderID: 11054, Total: 305.00
CustomerID: CENTC, OrderID: 10259, Total: 100.80
CustomerID: COMMI, OrderID: 10466, Total: 216.00
CustomerID: COMMI, OrderID: 10969, Total: 108.00
CustomerID: COMMI, OrderID: 11042, Total: 405.75
CustomerID: CONSH, OrderID: 10462, Total: 156.00
CustomerID: DRACD, OrderID: 10363, Total: 447.20
CustomerID: DRACD, OrderID: 10391, Total: 86.40
CustomerID: DRACD, OrderID: 10797, Total: 420.00
CustomerID: DRACD, OrderID: 11067, Total: 86.85
CustomerID: DUMON, OrderID: 10311, Total: 268.80
CustomerID: DUMON, OrderID: 10609, Total: 424.00
CustomerID: DUMON, OrderID: 10683, Total: 63.00
CustomerID: ERNSH, OrderID: 10771, Total: 344.00
CustomerID: FAMIA, OrderID: 10386, Total: 166.00
CustomerID: FAMIA, OrderID: 10414, Total: 224.83
CustomerID: FAMIA, OrderID: 10581, Total: 310.00
CustomerID: FAMIA, OrderID: 10725, Total: 287.80
CustomerID: FOLKO, OrderID: 10378, Total: 103.20
CustomerID: FOLKO, OrderID: 10434, Total: 321.12
CustomerID: FOLKO, OrderID: 10460, Total: 176.10
CustomerID: FOLKO, OrderID: 10824, Total: 250.80
CustomerID: FOLKO, OrderID: 10955, Total: 74.40
CustomerID: FOLKO, OrderID: 10980, Total: 248.00
CustomerID: FRANS, OrderID: 10422, Total: 49.80
CustomerID: FRANS, OrderID: 10710, Total: 93.50
CustomerID: FRANS, OrderID: 10753, Total: 88.00
CustomerID: FRANS, OrderID: 10807, Total: 18.40
CustomerID: FRANS, OrderID: 11060, Total: 266.00
CustomerID: FURIB, OrderID: 10352, Total: 136.30
CustomerID: FURIB, OrderID: 10491, Total: 259.50
CustomerID: FURIB, OrderID: 10604, Total: 230.85
CustomerID: FURIB, OrderID: 10963, Total: 57.80
CustomerID: GALED, OrderID: 10366, Total: 136.00
CustomerID: GALED, OrderID: 10426, Total: 338.20
CustomerID: GALED, OrderID: 10568, Total: 155.00
CustomerID: GALED, OrderID: 10887, Total: 70.00
CustomerID: GALED, OrderID: 10928, Total: 137.50
CustomerID: GODOS, OrderID: 10874, Total: 310.00
CustomerID: GODOS, OrderID: 11037, Total: 60.00
CustomerID: GOURL, OrderID: 10652, Total: 318.84
CustomerID: GOURL, OrderID: 10777, Total: 224.00
CustomerID: GOURL, OrderID: 10959, Total: 131.75
CustomerID: GOURL, OrderID: 11049, Total: 273.60
CustomerID: GREAL, OrderID: 10528, Total: 392.20
CustomerID: GREAL, OrderID: 10589, Total: 72.00
CustomerID: GREAL, OrderID: 10936, Total: 456.00
CustomerID: GREAL, OrderID: 11006, Total: 329.68
CustomerID: GREAL, OrderID: 11040, Total: 200.00
CustomerID: GROSR, OrderID: 10785, Total: 387.50
CustomerID: HANAR, OrderID: 10770, Total: 236.25
CustomerID: HANAR, OrderID: 10925, Total: 475.15
CustomerID: HILAA, OrderID: 10476, Total: 180.48
CustomerID: HILAA, OrderID: 10613, Total: 353.20
CustomerID: HILAA, OrderID: 10705, Total: 378.00
CustomerID: HILAA, OrderID: 10863, Total: 441.15
CustomerID: HILAA, OrderID: 10960, Total: 265.35
CustomerID: HUNGC, OrderID: 10375, Total: 338.00
CustomerID: HUNGC, OrderID: 10394, Total: 442.00
CustomerID: HUNGC, OrderID: 10415, Total: 102.40
CustomerID: HUNGC, OrderID: 10600, Total: 479.80
CustomerID: ISLAT, OrderID: 10318, Total: 240.40
CustomerID: ISLAT, OrderID: 10321, Total: 144.00
CustomerID: ISLAT, OrderID: 10473, Total: 230.40
CustomerID: ISLAT, OrderID: 10674, Total: 45.00
CustomerID: ISLAT, OrderID: 10798, Total: 446.60
CustomerID: KOENE, OrderID: 10323, Total: 164.40
CustomerID: KOENE, OrderID: 10506, Total: 415.80
CustomerID: KOENE, OrderID: 10542, Total: 469.11
CustomerID: LACOR, OrderID: 10972, Total: 251.50
CustomerID: LACOR, OrderID: 10973, Total: 291.55
CustomerID: LAMAI, OrderID: 10358, Total: 429.40
CustomerID: LAMAI, OrderID: 10371, Total: 72.96
CustomerID: LAMAI, OrderID: 10425, Total: 360.00
CustomerID: LAMAI, OrderID: 10454, Total: 331.20
CustomerID: LAMAI, OrderID: 10610, Total: 299.25
CustomerID: LAMAI, OrderID: 10631, Total: 55.80
CustomerID: LAMAI, OrderID: 10832, Total: 475.11
CustomerID: LAMAI, OrderID: 11051, Total: 36.00
CustomerID: LAUGB, OrderID: 10495, Total: 278.00
CustomerID: LAUGB, OrderID: 10620, Total: 57.50
CustomerID: LAUGB, OrderID: 10810, Total: 187.00
CustomerID: LAZYK, OrderID: 10482, Total: 147.00
CustomerID: LAZYK, OrderID: 10545, Total: 210.00
CustomerID: LEHMS, OrderID: 10279, Total: 351.00
CustomerID: LEHMS, OrderID: 10534, Total: 465.70
CustomerID: LEHMS, OrderID: 10891, Total: 368.93
CustomerID: LETSS, OrderID: 10579, Total: 317.75
CustomerID: LILAS, OrderID: 10381, Total: 112.00
CustomerID: LILAS, OrderID: 10899, Total: 122.40
CustomerID: LILAS, OrderID: 11065, Total: 189.42
CustomerID: LILAS, OrderID: 11071, Total: 484.50
CustomerID: LINOD, OrderID: 10405, Total: 400.00
CustomerID: LINOD, OrderID: 10840, Total: 211.20
CustomerID: LINOD, OrderID: 11014, Total: 243.18
CustomerID: LONEP, OrderID: 10307, Total: 424.00
CustomerID: LONEP, OrderID: 10317, Total: 288.00
CustomerID: LONEP, OrderID: 10544, Total: 417.20
CustomerID: LONEP, OrderID: 10662, Total: 125.00
CustomerID: LONEP, OrderID: 10867, Total: 98.40
CustomerID: LONEP, OrderID: 10883, Total: 36.00
CustomerID: MAGAA, OrderID: 10275, Total: 291.84
CustomerID: MAGAA, OrderID: 10467, Total: 235.20
CustomerID: MAGAA, OrderID: 10754, Total: 55.20
CustomerID: MAGAA, OrderID: 10950, Total: 110.00
CustomerID: MAISD, OrderID: 11004, Total: 295.38
CustomerID: MEREP, OrderID: 10376, Total: 399.00
CustomerID: MEREP, OrderID: 10505, Total: 147.90
CustomerID: MORGK, OrderID: 10699, Total: 114.00
CustomerID: MORGK, OrderID: 10945, Total: 245.00
CustomerID: NORTS, OrderID: 10517, Total: 352.00
CustomerID: NORTS, OrderID: 10752, Total: 252.00
CustomerID: NORTS, OrderID: 11057, Total: 45.00
CustomerID: OCEAN, OrderID: 10409, Total: 319.20
CustomerID: OCEAN, OrderID: 10531, Total: 110.00
CustomerID: OCEAN, OrderID: 10898, Total: 30.00
CustomerID: OTTIK, OrderID: 10508, Total: 240.00
CustomerID: PERIC, OrderID: 10322, Total: 112.00
CustomerID: PERIC, OrderID: 11073, Total: 300.00
CustomerID: PICCO, OrderID: 10489, Total: 439.20
CustomerID: PRINI, OrderID: 10336, Total: 285.12
CustomerID: QUEDE, OrderID: 10261, Total: 448.00
CustomerID: QUEDE, OrderID: 10291, Total: 497.52
CustomerID: QUEDE, OrderID: 10794, Total: 314.76
CustomerID: QUICK, OrderID: 10313, Total: 182.40
CustomerID: RANCH, OrderID: 10448, Total: 443.40
CustomerID: RANCH, OrderID: 11019, Total: 76.00
CustomerID: REGGC, OrderID: 10288, Total: 80.10
CustomerID: REGGC, OrderID: 10428, Total: 192.00
CustomerID: REGGC, OrderID: 10562, Total: 488.70
CustomerID: REGGC, OrderID: 10586, Total: 23.80
CustomerID: REGGC, OrderID: 10655, Total: 154.40
CustomerID: REGGC, OrderID: 11062, Total: 406.40
CustomerID: RICAR, OrderID: 10299, Total: 349.50
CustomerID: RICAR, OrderID: 10648, Total: 372.38
CustomerID: RICSU, OrderID: 10951, Total: 458.76
CustomerID: RICSU, OrderID: 11075, Total: 498.10
CustomerID: ROMEY, OrderID: 10281, Total: 86.50
CustomerID: ROMEY, OrderID: 10282, Total: 155.40
CustomerID: ROMEY, OrderID: 10306, Total: 498.50
CustomerID: ROMEY, OrderID: 10917, Total: 365.89
CustomerID: ROMEY, OrderID: 11013, Total: 361.00
CustomerID: SANTG, OrderID: 10520, Total: 200.00
CustomerID: SAVEA, OrderID: 10815, Total: 40.00
CustomerID: SIMOB, OrderID: 10341, Total: 352.60
CustomerID: SIMOB, OrderID: 11074, Total: 232.08
CustomerID: SPECD, OrderID: 10738, Total: 52.35
CustomerID: SPECD, OrderID: 10907, Total: 108.50
CustomerID: SPECD, OrderID: 11043, Total: 210.00
CustomerID: SPLIR, OrderID: 10271, Total: 48.00
CustomerID: SPLIR, OrderID: 10349, Total: 141.60
CustomerID: SPLIR, OrderID: 10432, Total: 485.00
CustomerID: SPLIR, OrderID: 10974, Total: 439.00
CustomerID: SUPRD, OrderID: 10767, Total: 28.00
CustomerID: THEBI, OrderID: 10310, Total: 336.00
CustomerID: THEBI, OrderID: 10708, Total: 180.40
CustomerID: THEBI, OrderID: 10992, Total: 69.60
CustomerID: THECR, OrderID: 10775, Total: 228.00
CustomerID: THECR, OrderID: 11003, Total: 326.00
CustomerID: TOMSP, OrderID: 10438, Total: 454.00
CustomerID: TOMSP, OrderID: 10446, Total: 246.24
CustomerID: TOMSP, OrderID: 10548, Total: 240.10
CustomerID: TORTU, OrderID: 10276, Total: 420.00
CustomerID: TORTU, OrderID: 11069, Total: 360.00
CustomerID: TRADH, OrderID: 10496, Total: 190.00
CustomerID: TRAIH, OrderID: 10822, Total: 237.90
CustomerID: VAFFE, OrderID: 10602, Total: 48.75
CustomerID: VICTE, OrderID: 10334, Total: 144.80
CustomerID: VICTE, OrderID: 10450, Total: 425.12
CustomerID: VICTE, OrderID: 10478, Total: 471.20
CustomerID: VICTE, OrderID: 10806, Total: 439.60
CustomerID: VICTE, OrderID: 10843, Total: 159.00
CustomerID: VINET, OrderID: 10295, Total: 121.60
CustomerID: VINET, OrderID: 10737, Total: 139.80
CustomerID: VINET, OrderID: 10739, Total: 240.00
CustomerID: WANDK, OrderID: 10348, Total: 363.60
CustomerID: WANDK, OrderID: 10651, Total: 397.80
CustomerID: WARTH, OrderID: 10266, Total: 346.56
CustomerID: WARTH, OrderID: 10412, Total: 334.80
CustomerID: WARTH, OrderID: 10437, Total: 393.00
CustomerID: WARTH, OrderID: 11025, Total: 270.00
CustomerID: WELLI, OrderID: 10585, Total: 142.50
CustomerID: WELLI, OrderID: 10809, Total: 140.00
CustomerID: WELLI, OrderID: 10900, Total: 33.75
CustomerID: WELLI, OrderID: 10905, Total: 342.00
CustomerID: WHITC, OrderID: 10723, Total: 468.45
CustomerID: WILMK, OrderID: 10248, Total: 440.00
CustomerID: WILMK, OrderID: 10615, Total: 120.00
CustomerID: WILMK, OrderID: 10673, Total: 412.35
CustomerID: WILMK, OrderID: 10873, Total: 336.80
CustomerID: WILMK, OrderID: 10910, Total: 452.90
CustomerID: WOLZA, OrderID: 10374, Total: 459.00
CustomerID: WOLZA, OrderID: 10792, Total: 399.85
CustomerID: WOLZA, OrderID: 10870, Total: 160.00
CustomerID: WOLZA, OrderID: 10906, Total: 427.50


SelectMany - Compound from 3

This sample uses a compound from clause to select all orders where the order was made in 1998 or later.

Public Sub DataSetLinq16()
    Dim customers = TestDS.Tables("Customers").AsEnumerable()

    Dim orders = From c In customers, o In c.GetChildRows("CustomersOrders") _
        Where o!OrderDate >= #1/1/1998# _
        Select c!CustomerID, o!OrderID, o!OrderDate

    For Each x In orders
        Console.WriteLine("CustomerID: {0}, OrderID: {1}, OrderDate: {2}", x.CustomerID, x.OrderID, x.OrderDate)
    Next
End Sub


Result:
CustomerID: ALFKI, OrderID: 10835, OrderDate: 1/15/1998 12:00:00 AM
CustomerID: ALFKI, OrderID: 10952, OrderDate: 3/16/1998 12:00:00 AM
CustomerID: ALFKI, OrderID: 11011, OrderDate: 4/9/1998 12:00:00 AM
CustomerID: ANATR, OrderID: 10926, OrderDate: 3/4/1998 12:00:00 AM
CustomerID: ANTON, OrderID: 10856, OrderDate: 1/28/1998 12:00:00 AM
CustomerID: AROUT, OrderID: 10864, OrderDate: 2/2/1998 12:00:00 AM
CustomerID: AROUT, OrderID: 10920, OrderDate: 3/3/1998 12:00:00 AM
CustomerID: AROUT, OrderID: 10953, OrderDate: 3/16/1998 12:00:00 AM
CustomerID: AROUT, OrderID: 11016, OrderDate: 4/10/1998 12:00:00 AM
CustomerID: BERGS, OrderID: 10837, OrderDate: 1/16/1998 12:00:00 AM
CustomerID: BERGS, OrderID: 10857, OrderDate: 1/28/1998 12:00:00 AM
CustomerID: BERGS, OrderID: 10866, OrderDate: 2/3/1998 12:00:00 AM
CustomerID: BERGS, OrderID: 10875, OrderDate: 2/6/1998 12:00:00 AM
CustomerID: BERGS, OrderID: 10924, OrderDate: 3/4/1998 12:00:00 AM
CustomerID: BLAUS, OrderID: 10853, OrderDate: 1/27/1998 12:00:00 AM
CustomerID: BLAUS, OrderID: 10956, OrderDate: 3/17/1998 12:00:00 AM
CustomerID: BLAUS, OrderID: 11058, OrderDate: 4/29/1998 12:00:00 AM
CustomerID: BLONP, OrderID: 10826, OrderDate: 1/12/1998 12:00:00 AM
CustomerID: BOLID, OrderID: 10970, OrderDate: 3/24/1998 12:00:00 AM
CustomerID: BONAP, OrderID: 10827, OrderDate: 1/12/1998 12:00:00 AM
CustomerID: BONAP, OrderID: 10871, OrderDate: 2/5/1998 12:00:00 AM
CustomerID: BONAP, OrderID: 10876, OrderDate: 2/9/1998 12:00:00 AM
CustomerID: BONAP, OrderID: 10932, OrderDate: 3/6/1998 12:00:00 AM
CustomerID: BONAP, OrderID: 10940, OrderDate: 3/11/1998 12:00:00 AM
CustomerID: BONAP, OrderID: 11076, OrderDate: 5/6/1998 12:00:00 AM
CustomerID: BOTTM, OrderID: 10918, OrderDate: 3/2/1998 12:00:00 AM
CustomerID: BOTTM, OrderID: 10944, OrderDate: 3/12/1998 12:00:00 AM
CustomerID: BOTTM, OrderID: 10949, OrderDate: 3/13/1998 12:00:00 AM
CustomerID: BOTTM, OrderID: 10975, OrderDate: 3/25/1998 12:00:00 AM
CustomerID: BOTTM, OrderID: 10982, OrderDate: 3/27/1998 12:00:00 AM
CustomerID: BOTTM, OrderID: 11027, OrderDate: 4/16/1998 12:00:00 AM
CustomerID: BOTTM, OrderID: 11045, OrderDate: 4/23/1998 12:00:00 AM
CustomerID: BOTTM, OrderID: 11048, OrderDate: 4/24/1998 12:00:00 AM
CustomerID: BSBEV, OrderID: 10943, OrderDate: 3/11/1998 12:00:00 AM
CustomerID: BSBEV, OrderID: 10947, OrderDate: 3/13/1998 12:00:00 AM
CustomerID: BSBEV, OrderID: 11023, OrderDate: 4/14/1998 12:00:00 AM
CustomerID: CACTU, OrderID: 10819, OrderDate: 1/7/1998 12:00:00 AM
CustomerID: CACTU, OrderID: 10881, OrderDate: 2/11/1998 12:00:00 AM
CustomerID: CACTU, OrderID: 10937, OrderDate: 3/10/1998 12:00:00 AM
CustomerID: CACTU, OrderID: 11054, OrderDate: 4/28/1998 12:00:00 AM
CustomerID: CHOPS, OrderID: 10966, OrderDate: 3/20/1998 12:00:00 AM
CustomerID: CHOPS, OrderID: 11029, OrderDate: 4/16/1998 12:00:00 AM
CustomerID: CHOPS, OrderID: 11041, OrderDate: 4/22/1998 12:00:00 AM
CustomerID: COMMI, OrderID: 10969, OrderDate: 3/23/1998 12:00:00 AM
CustomerID: COMMI, OrderID: 11042, OrderDate: 4/22/1998 12:00:00 AM
CustomerID: CONSH, OrderID: 10848, OrderDate: 1/23/1998 12:00:00 AM
CustomerID: DRACD, OrderID: 10825, OrderDate: 1/9/1998 12:00:00 AM
CustomerID: DRACD, OrderID: 11036, OrderDate: 4/20/1998 12:00:00 AM
CustomerID: DRACD, OrderID: 11067, OrderDate: 5/4/1998 12:00:00 AM
CustomerID: DUMON, OrderID: 10890, OrderDate: 2/16/1998 12:00:00 AM
CustomerID: EASTC, OrderID: 10987, OrderDate: 3/31/1998 12:00:00 AM
CustomerID: EASTC, OrderID: 11024, OrderDate: 4/15/1998 12:00:00 AM
CustomerID: EASTC, OrderID: 11047, OrderDate: 4/24/1998 12:00:00 AM
CustomerID: EASTC, OrderID: 11056, OrderDate: 4/28/1998 12:00:00 AM
CustomerID: ERNSH, OrderID: 10836, OrderDate: 1/16/1998 12:00:00 AM
CustomerID: ERNSH, OrderID: 10854, OrderDate: 1/27/1998 12:00:00 AM
CustomerID: ERNSH, OrderID: 10895, OrderDate: 2/18/1998 12:00:00 AM
CustomerID: ERNSH, OrderID: 10968, OrderDate: 3/23/1998 12:00:00 AM
CustomerID: ERNSH, OrderID: 10979, OrderDate: 3/26/1998 12:00:00 AM
CustomerID: ERNSH, OrderID: 10990, OrderDate: 4/1/1998 12:00:00 AM
CustomerID: ERNSH, OrderID: 11008, OrderDate: 4/8/1998 12:00:00 AM
CustomerID: ERNSH, OrderID: 11017, OrderDate: 4/13/1998 12:00:00 AM
CustomerID: ERNSH, OrderID: 11072, OrderDate: 5/5/1998 12:00:00 AM
CustomerID: FOLKO, OrderID: 10824, OrderDate: 1/9/1998 12:00:00 AM
CustomerID: FOLKO, OrderID: 10880, OrderDate: 2/10/1998 12:00:00 AM
CustomerID: FOLKO, OrderID: 10902, OrderDate: 2/23/1998 12:00:00 AM
CustomerID: FOLKO, OrderID: 10955, OrderDate: 3/17/1998 12:00:00 AM
CustomerID: FOLKO, OrderID: 10977, OrderDate: 3/26/1998 12:00:00 AM
CustomerID: FOLKO, OrderID: 10980, OrderDate: 3/27/1998 12:00:00 AM
CustomerID: FOLKO, OrderID: 10993, OrderDate: 4/1/1998 12:00:00 AM
CustomerID: FOLKO, OrderID: 11001, OrderDate: 4/6/1998 12:00:00 AM
CustomerID: FOLKO, OrderID: 11050, OrderDate: 4/27/1998 12:00:00 AM
CustomerID: FRANK, OrderID: 10859, OrderDate: 1/29/1998 12:00:00 AM
CustomerID: FRANK, OrderID: 10929, OrderDate: 3/5/1998 12:00:00 AM
CustomerID: FRANK, OrderID: 11012, OrderDate: 4/9/1998 12:00:00 AM
CustomerID: FRANR, OrderID: 10860, OrderDate: 1/29/1998 12:00:00 AM
CustomerID: FRANR, OrderID: 10971, OrderDate: 3/24/1998 12:00:00 AM
CustomerID: FRANS, OrderID: 11026, OrderDate: 4/15/1998 12:00:00 AM
CustomerID: FRANS, OrderID: 11060, OrderDate: 4/30/1998 12:00:00 AM
CustomerID: FURIB, OrderID: 10963, OrderDate: 3/19/1998 12:00:00 AM
CustomerID: GALED, OrderID: 10887, OrderDate: 2/13/1998 12:00:00 AM
CustomerID: GALED, OrderID: 10928, OrderDate: 3/5/1998 12:00:00 AM
CustomerID: GODOS, OrderID: 10872, OrderDate: 2/5/1998 12:00:00 AM
CustomerID: GODOS, OrderID: 10874, OrderDate: 2/6/1998 12:00:00 AM
CustomerID: GODOS, OrderID: 10888, OrderDate: 2/16/1998 12:00:00 AM
CustomerID: GODOS, OrderID: 10911, OrderDate: 2/26/1998 12:00:00 AM
CustomerID: GODOS, OrderID: 10948, OrderDate: 3/13/1998 12:00:00 AM
CustomerID: GODOS, OrderID: 11009, OrderDate: 4/8/1998 12:00:00 AM
CustomerID: GODOS, OrderID: 11037, OrderDate: 4/21/1998 12:00:00 AM
CustomerID: GOURL, OrderID: 10959, OrderDate: 3/18/1998 12:00:00 AM
CustomerID: GOURL, OrderID: 11049, OrderDate: 4/24/1998 12:00:00 AM
CustomerID: GREAL, OrderID: 10816, OrderDate: 1/6/1998 12:00:00 AM
CustomerID: GREAL, OrderID: 10936, OrderDate: 3/9/1998 12:00:00 AM
CustomerID: GREAL, OrderID: 11006, OrderDate: 4/7/1998 12:00:00 AM
CustomerID: GREAL, OrderID: 11040, OrderDate: 4/22/1998 12:00:00 AM
CustomerID: GREAL, OrderID: 11061, OrderDate: 4/30/1998 12:00:00 AM
CustomerID: HANAR, OrderID: 10886, OrderDate: 2/13/1998 12:00:00 AM
CustomerID: HANAR, OrderID: 10903, OrderDate: 2/24/1998 12:00:00 AM
CustomerID: HANAR, OrderID: 10922, OrderDate: 3/3/1998 12:00:00 AM
CustomerID: HANAR, OrderID: 10925, OrderDate: 3/4/1998 12:00:00 AM
CustomerID: HANAR, OrderID: 10981, OrderDate: 3/27/1998 12:00:00 AM
CustomerID: HANAR, OrderID: 11022, OrderDate: 4/14/1998 12:00:00 AM
CustomerID: HANAR, OrderID: 11052, OrderDate: 4/27/1998 12:00:00 AM
CustomerID: HILAA, OrderID: 10863, OrderDate: 2/2/1998 12:00:00 AM
CustomerID: HILAA, OrderID: 10901, OrderDate: 2/23/1998 12:00:00 AM
CustomerID: HILAA, OrderID: 10957, OrderDate: 3/18/1998 12:00:00 AM
CustomerID: HILAA, OrderID: 10960, OrderDate: 3/19/1998 12:00:00 AM
CustomerID: HILAA, OrderID: 10976, OrderDate: 3/25/1998 12:00:00 AM
CustomerID: HILAA, OrderID: 11055, OrderDate: 4/28/1998 12:00:00 AM
CustomerID: HUNGO, OrderID: 10897, OrderDate: 2/19/1998 12:00:00 AM
CustomerID: HUNGO, OrderID: 10912, OrderDate: 2/26/1998 12:00:00 AM
CustomerID: HUNGO, OrderID: 10985, OrderDate: 3/30/1998 12:00:00 AM
CustomerID: HUNGO, OrderID: 11063, OrderDate: 4/30/1998 12:00:00 AM
CustomerID: ISLAT, OrderID: 10829, OrderDate: 1/13/1998 12:00:00 AM
CustomerID: ISLAT, OrderID: 10933, OrderDate: 3/6/1998 12:00:00 AM
CustomerID: KOENE, OrderID: 10817, OrderDate: 1/6/1998 12:00:00 AM
CustomerID: KOENE, OrderID: 10849, OrderDate: 1/23/1998 12:00:00 AM
CustomerID: KOENE, OrderID: 10893, OrderDate: 2/18/1998 12:00:00 AM
CustomerID: KOENE, OrderID: 11028, OrderDate: 4/16/1998 12:00:00 AM
CustomerID: LACOR, OrderID: 10858, OrderDate: 1/29/1998 12:00:00 AM
CustomerID: LACOR, OrderID: 10927, OrderDate: 3/5/1998 12:00:00 AM
CustomerID: LACOR, OrderID: 10972, OrderDate: 3/24/1998 12:00:00 AM
CustomerID: LACOR, OrderID: 10973, OrderDate: 3/24/1998 12:00:00 AM
CustomerID: LAMAI, OrderID: 10832, OrderDate: 1/14/1998 12:00:00 AM
CustomerID: LAMAI, OrderID: 10923, OrderDate: 3/3/1998 12:00:00 AM
CustomerID: LAMAI, OrderID: 11051, OrderDate: 4/27/1998 12:00:00 AM
CustomerID: LAUGB, OrderID: 10810, OrderDate: 1/1/1998 12:00:00 AM
CustomerID: LEHMS, OrderID: 10862, OrderDate: 1/30/1998 12:00:00 AM
CustomerID: LEHMS, OrderID: 10891, OrderDate: 2/17/1998 12:00:00 AM
CustomerID: LEHMS, OrderID: 10934, OrderDate: 3/9/1998 12:00:00 AM
CustomerID: LEHMS, OrderID: 11070, OrderDate: 5/5/1998 12:00:00 AM
CustomerID: LETSS, OrderID: 10884, OrderDate: 2/12/1998 12:00:00 AM
CustomerID: LILAS, OrderID: 10823, OrderDate: 1/9/1998 12:00:00 AM
CustomerID: LILAS, OrderID: 10899, OrderDate: 2/20/1998 12:00:00 AM
CustomerID: LILAS, OrderID: 10997, OrderDate: 4/3/1998 12:00:00 AM
CustomerID: LILAS, OrderID: 11065, OrderDate: 5/1/1998 12:00:00 AM
CustomerID: LILAS, OrderID: 11071, OrderDate: 5/5/1998 12:00:00 AM
CustomerID: LINOD, OrderID: 10811, OrderDate: 1/2/1998 12:00:00 AM
CustomerID: LINOD, OrderID: 10838, OrderDate: 1/19/1998 12:00:00 AM
CustomerID: LINOD, OrderID: 10840, OrderDate: 1/19/1998 12:00:00 AM
CustomerID: LINOD, OrderID: 10919, OrderDate: 3/2/1998 12:00:00 AM
CustomerID: LINOD, OrderID: 10954, OrderDate: 3/17/1998 12:00:00 AM
CustomerID: LINOD, OrderID: 11014, OrderDate: 4/10/1998 12:00:00 AM
CustomerID: LINOD, OrderID: 11039, OrderDate: 4/21/1998 12:00:00 AM
CustomerID: LONEP, OrderID: 10867, OrderDate: 2/3/1998 12:00:00 AM
CustomerID: LONEP, OrderID: 10883, OrderDate: 2/12/1998 12:00:00 AM
CustomerID: LONEP, OrderID: 11018, OrderDate: 4/13/1998 12:00:00 AM
CustomerID: MAGAA, OrderID: 10818, OrderDate: 1/7/1998 12:00:00 AM
CustomerID: MAGAA, OrderID: 10939, OrderDate: 3/10/1998 12:00:00 AM
CustomerID: MAGAA, OrderID: 10950, OrderDate: 3/16/1998 12:00:00 AM
CustomerID: MAISD, OrderID: 10892, OrderDate: 2/17/1998 12:00:00 AM
CustomerID: MAISD, OrderID: 10896, OrderDate: 2/19/1998 12:00:00 AM
CustomerID: MAISD, OrderID: 10978, OrderDate: 3/26/1998 12:00:00 AM
CustomerID: MAISD, OrderID: 11004, OrderDate: 4/7/1998 12:00:00 AM
CustomerID: MORGK, OrderID: 10945, OrderDate: 3/12/1998 12:00:00 AM
CustomerID: NORTS, OrderID: 11057, OrderDate: 4/29/1998 12:00:00 AM
CustomerID: OCEAN, OrderID: 10898, OrderDate: 2/20/1998 12:00:00 AM
CustomerID: OCEAN, OrderID: 10958, OrderDate: 3/18/1998 12:00:00 AM
CustomerID: OCEAN, OrderID: 10986, OrderDate: 3/30/1998 12:00:00 AM
CustomerID: OLDWO, OrderID: 10855, OrderDate: 1/27/1998 12:00:00 AM
CustomerID: OLDWO, OrderID: 10965, OrderDate: 3/20/1998 12:00:00 AM
CustomerID: OLDWO, OrderID: 11034, OrderDate: 4/20/1998 12:00:00 AM
CustomerID: OTTIK, OrderID: 10833, OrderDate: 1/15/1998 12:00:00 AM
CustomerID: OTTIK, OrderID: 10999, OrderDate: 4/3/1998 12:00:00 AM
CustomerID: OTTIK, OrderID: 11020, OrderDate: 4/14/1998 12:00:00 AM
CustomerID: PERIC, OrderID: 10995, OrderDate: 4/2/1998 12:00:00 AM
CustomerID: PERIC, OrderID: 11073, OrderDate: 5/5/1998 12:00:00 AM
CustomerID: PICCO, OrderID: 10844, OrderDate: 1/21/1998 12:00:00 AM
CustomerID: PICCO, OrderID: 11053, OrderDate: 4/27/1998 12:00:00 AM
CustomerID: PRINI, OrderID: 10808, OrderDate: 1/1/1998 12:00:00 AM
CustomerID: PRINI, OrderID: 11007, OrderDate: 4/8/1998 12:00:00 AM
CustomerID: QUEDE, OrderID: 10989, OrderDate: 3/31/1998 12:00:00 AM
CustomerID: QUEEN, OrderID: 10868, OrderDate: 2/4/1998 12:00:00 AM
CustomerID: QUEEN, OrderID: 10913, OrderDate: 2/26/1998 12:00:00 AM
CustomerID: QUEEN, OrderID: 10914, OrderDate: 2/27/1998 12:00:00 AM
CustomerID: QUEEN, OrderID: 10961, OrderDate: 3/19/1998 12:00:00 AM
CustomerID: QUEEN, OrderID: 11068, OrderDate: 5/4/1998 12:00:00 AM
CustomerID: QUICK, OrderID: 10845, OrderDate: 1/21/1998 12:00:00 AM
CustomerID: QUICK, OrderID: 10865, OrderDate: 2/2/1998 12:00:00 AM
CustomerID: QUICK, OrderID: 10878, OrderDate: 2/10/1998 12:00:00 AM
CustomerID: QUICK, OrderID: 10938, OrderDate: 3/10/1998 12:00:00 AM
CustomerID: QUICK, OrderID: 10962, OrderDate: 3/19/1998 12:00:00 AM
CustomerID: QUICK, OrderID: 10991, OrderDate: 4/1/1998 12:00:00 AM
CustomerID: QUICK, OrderID: 10996, OrderDate: 4/2/1998 12:00:00 AM
CustomerID: QUICK, OrderID: 11021, OrderDate: 4/14/1998 12:00:00 AM
CustomerID: RANCH, OrderID: 10828, OrderDate: 1/13/1998 12:00:00 AM
CustomerID: RANCH, OrderID: 10916, OrderDate: 2/27/1998 12:00:00 AM
CustomerID: RANCH, OrderID: 11019, OrderDate: 4/13/1998 12:00:00 AM
CustomerID: RATTC, OrderID: 10820, OrderDate: 1/7/1998 12:00:00 AM
CustomerID: RATTC, OrderID: 10852, OrderDate: 1/26/1998 12:00:00 AM
CustomerID: RATTC, OrderID: 10889, OrderDate: 2/16/1998 12:00:00 AM
CustomerID: RATTC, OrderID: 10988, OrderDate: 3/31/1998 12:00:00 AM
CustomerID: RATTC, OrderID: 11000, OrderDate: 4/6/1998 12:00:00 AM
CustomerID: RATTC, OrderID: 11077, OrderDate: 5/6/1998 12:00:00 AM
CustomerID: REGGC, OrderID: 10812, OrderDate: 1/2/1998 12:00:00 AM
CustomerID: REGGC, OrderID: 10908, OrderDate: 2/26/1998 12:00:00 AM
CustomerID: REGGC, OrderID: 10942, OrderDate: 3/11/1998 12:00:00 AM
CustomerID: REGGC, OrderID: 11010, OrderDate: 4/9/1998 12:00:00 AM
CustomerID: REGGC, OrderID: 11062, OrderDate: 4/30/1998 12:00:00 AM
CustomerID: RICAR, OrderID: 10813, OrderDate: 1/5/1998 12:00:00 AM
CustomerID: RICAR, OrderID: 10851, OrderDate: 1/26/1998 12:00:00 AM
CustomerID: RICAR, OrderID: 10877, OrderDate: 2/9/1998 12:00:00 AM
CustomerID: RICAR, OrderID: 11059, OrderDate: 4/29/1998 12:00:00 AM
CustomerID: RICSU, OrderID: 10931, OrderDate: 3/6/1998 12:00:00 AM
CustomerID: RICSU, OrderID: 10951, OrderDate: 3/16/1998 12:00:00 AM
CustomerID: RICSU, OrderID: 11033, OrderDate: 4/17/1998 12:00:00 AM
CustomerID: RICSU, OrderID: 11075, OrderDate: 5/6/1998 12:00:00 AM
CustomerID: ROMEY, OrderID: 10917, OrderDate: 3/2/1998 12:00:00 AM
CustomerID: ROMEY, OrderID: 11013, OrderDate: 4/9/1998 12:00:00 AM
CustomerID: SANTG, OrderID: 10831, OrderDate: 1/14/1998 12:00:00 AM
CustomerID: SANTG, OrderID: 10909, OrderDate: 2/26/1998 12:00:00 AM
CustomerID: SANTG, OrderID: 11015, OrderDate: 4/10/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 10815, OrderDate: 1/5/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 10847, OrderDate: 1/22/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 10882, OrderDate: 2/11/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 10894, OrderDate: 2/18/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 10941, OrderDate: 3/11/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 10983, OrderDate: 3/27/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 10984, OrderDate: 3/30/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 11002, OrderDate: 4/6/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 11030, OrderDate: 4/17/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 11031, OrderDate: 4/17/1998 12:00:00 AM
CustomerID: SAVEA, OrderID: 11064, OrderDate: 5/1/1998 12:00:00 AM
CustomerID: SEVES, OrderID: 10869, OrderDate: 2/4/1998 12:00:00 AM
CustomerID: SIMOB, OrderID: 11074, OrderDate: 5/6/1998 12:00:00 AM
CustomerID: SPECD, OrderID: 10907, OrderDate: 2/25/1998 12:00:00 AM
CustomerID: SPECD, OrderID: 10964, OrderDate: 3/20/1998 12:00:00 AM
CustomerID: SPECD, OrderID: 11043, OrderDate: 4/22/1998 12:00:00 AM
CustomerID: SPLIR, OrderID: 10821, OrderDate: 1/8/1998 12:00:00 AM
CustomerID: SPLIR, OrderID: 10974, OrderDate: 3/25/1998 12:00:00 AM
CustomerID: SUPRD, OrderID: 10841, OrderDate: 1/20/1998 12:00:00 AM
CustomerID: SUPRD, OrderID: 10846, OrderDate: 1/22/1998 12:00:00 AM
CustomerID: SUPRD, OrderID: 10885, OrderDate: 2/12/1998 12:00:00 AM
CustomerID: SUPRD, OrderID: 10930, OrderDate: 3/6/1998 12:00:00 AM
CustomerID: SUPRD, OrderID: 11035, OrderDate: 4/20/1998 12:00:00 AM
CustomerID: SUPRD, OrderID: 11038, OrderDate: 4/21/1998 12:00:00 AM
CustomerID: THEBI, OrderID: 10992, OrderDate: 4/1/1998 12:00:00 AM
CustomerID: THECR, OrderID: 11003, OrderDate: 4/6/1998 12:00:00 AM
CustomerID: TOMSP, OrderID: 10967, OrderDate: 3/23/1998 12:00:00 AM
CustomerID: TORTU, OrderID: 10842, OrderDate: 1/20/1998 12:00:00 AM
CustomerID: TORTU, OrderID: 10915, OrderDate: 2/27/1998 12:00:00 AM
CustomerID: TORTU, OrderID: 11069, OrderDate: 5/4/1998 12:00:00 AM
CustomerID: TRADH, OrderID: 10830, OrderDate: 1/13/1998 12:00:00 AM
CustomerID: TRADH, OrderID: 10834, OrderDate: 1/15/1998 12:00:00 AM
CustomerID: TRADH, OrderID: 10839, OrderDate: 1/19/1998 12:00:00 AM
CustomerID: TRAIH, OrderID: 10822, OrderDate: 1/8/1998 12:00:00 AM
CustomerID: VAFFE, OrderID: 10921, OrderDate: 3/3/1998 12:00:00 AM
CustomerID: VAFFE, OrderID: 10946, OrderDate: 3/12/1998 12:00:00 AM
CustomerID: VAFFE, OrderID: 10994, OrderDate: 4/2/1998 12:00:00 AM
CustomerID: VICTE, OrderID: 10814, OrderDate: 1/5/1998 12:00:00 AM
CustomerID: VICTE, OrderID: 10843, OrderDate: 1/21/1998 12:00:00 AM
CustomerID: VICTE, OrderID: 10850, OrderDate: 1/23/1998 12:00:00 AM
CustomerID: WANDK, OrderID: 11046, OrderDate: 4/23/1998 12:00:00 AM
CustomerID: WARTH, OrderID: 11025, OrderDate: 4/15/1998 12:00:00 AM
CustomerID: WELLI, OrderID: 10809, OrderDate: 1/1/1998 12:00:00 AM
CustomerID: WELLI, OrderID: 10900, OrderDate: 2/20/1998 12:00:00 AM
CustomerID: WELLI, OrderID: 10905, OrderDate: 2/24/1998 12:00:00 AM
CustomerID: WELLI, OrderID: 10935, OrderDate: 3/9/1998 12:00:00 AM
CustomerID: WHITC, OrderID: 10861, OrderDate: 1/30/1998 12:00:00 AM
CustomerID: WHITC, OrderID: 10904, OrderDate: 2/24/1998 12:00:00 AM
CustomerID: WHITC, OrderID: 11032, OrderDate: 4/17/1998 12:00:00 AM
CustomerID: WHITC, OrderID: 11066, OrderDate: 5/1/1998 12:00:00 AM
CustomerID: WILMK, OrderID: 10873, OrderDate: 2/6/1998 12:00:00 AM
CustomerID: WILMK, OrderID: 10879, OrderDate: 2/10/1998 12:00:00 AM
CustomerID: WILMK, OrderID: 10910, OrderDate: 2/26/1998 12:00:00 AM
CustomerID: WILMK, OrderID: 11005, OrderDate: 4/7/1998 12:00:00 AM
CustomerID: WOLZA, OrderID: 10870, OrderDate: 2/4/1998 12:00:00 AM
CustomerID: WOLZA, OrderID: 10906, OrderDate: 2/25/1998 12:00:00 AM
CustomerID: WOLZA, OrderID: 10998, OrderDate: 4/3/1998 12:00:00 AM
CustomerID: WOLZA, OrderID: 11044, OrderDate: 4/23/1998 12:00:00 AM


SelectMany - from Assignment

This sample uses a compound from clause to select all orders where the order total is greater than 2000.00 and uses from assignment to avoid requesting the total twice.

Public Sub DataSetLinq17()

    Dim customers = TestDS.Tables("Customers").AsEnumerable()
    Dim orders = TestDS.Tables("Orders").AsEnumerable()

    Dim myOrders = From c In customers, o In orders _
                   Let Total = o.Field(Of Decimal)("Total") _
                   Where c.Field(Of String)("CustomerID") = o.Field(Of String)("CustomerID") AndAlso Total >= 2000.0# _
                   Select CustomerID = c.Field(Of String)("CustomerID"), OrderID = o.Field(Of Integer)("OrderID"), Total

    ObjectDumper.Write(myOrders)
End Sub


Result:
CustomerID=ANTON OrderID=10573 Total=2082.00
CustomerID=AROUT OrderID=10558 Total=2142.90
CustomerID=AROUT OrderID=10953 Total=4441.25
CustomerID=BERGS OrderID=10384 Total=2222.40
CustomerID=BERGS OrderID=10524 Total=3192.65
CustomerID=BERGS OrderID=10672 Total=3815.25
CustomerID=BERGS OrderID=10857 Total=2048.21
CustomerID=BLONP OrderID=10360 Total=7390.20
CustomerID=BOLID OrderID=10801 Total=3026.85
CustomerID=BONAP OrderID=10340 Total=2436.18
CustomerID=BONAP OrderID=10511 Total=2550.00
CustomerID=BOTTM OrderID=10742 Total=3118.00
CustomerID=BOTTM OrderID=10949 Total=4422.00
CustomerID=CHOPS OrderID=10519 Total=2314.20
CustomerID=CHOPS OrderID=10746 Total=2311.70
CustomerID=COMMI OrderID=10290 Total=2169.00
CustomerID=EASTC OrderID=10400 Total=3063.00
CustomerID=EASTC OrderID=10987 Total=2772.00
CustomerID=EASTC OrderID=11056 Total=3740.00
CustomerID=ERNSH OrderID=10351 Total=5398.72
CustomerID=ERNSH OrderID=10382 Total=2900.00
CustomerID=ERNSH OrderID=10390 Total=2090.88
CustomerID=ERNSH OrderID=10402 Total=2713.50
CustomerID=ERNSH OrderID=10430 Total=4899.20
CustomerID=ERNSH OrderID=10514 Total=8623.45
CustomerID=ERNSH OrderID=10595 Total=4725.00
CustomerID=ERNSH OrderID=10633 Total=5510.59
CustomerID=ERNSH OrderID=10698 Total=3436.44
CustomerID=ERNSH OrderID=10764 Total=2286.00
CustomerID=ERNSH OrderID=10773 Total=2030.40
CustomerID=ERNSH OrderID=10776 Total=6635.28
CustomerID=ERNSH OrderID=10795 Total=2158.00
CustomerID=ERNSH OrderID=10836 Total=4705.50
CustomerID=ERNSH OrderID=10854 Total=2966.50
CustomerID=ERNSH OrderID=10895 Total=6379.40
CustomerID=ERNSH OrderID=10979 Total=4813.50
CustomerID=ERNSH OrderID=10990 Total=4288.85
CustomerID=ERNSH OrderID=11008 Total=4680.90
CustomerID=ERNSH OrderID=11017 Total=6750.00
CustomerID=ERNSH OrderID=11072 Total=5218.00
CustomerID=FOLIG OrderID=10634 Total=4985.50
CustomerID=FOLIG OrderID=10789 Total=3687.00
CustomerID=FOLKO OrderID=10533 Total=2222.20
CustomerID=FOLKO OrderID=10561 Total=2844.50
CustomerID=FOLKO OrderID=10703 Total=2545.00
CustomerID=FOLKO OrderID=10762 Total=4337.00
CustomerID=FOLKO OrderID=10977 Total=2233.00
CustomerID=FOLKO OrderID=10993 Total=4895.44
CustomerID=FOLKO OrderID=11001 Total=2769.00
CustomerID=FRANK OrderID=10267 Total=3536.60
CustomerID=FRANK OrderID=10337 Total=2467.00
CustomerID=FRANK OrderID=10670 Total=2301.75
CustomerID=FRANK OrderID=11012 Total=2825.30
CustomerID=GODOS OrderID=10629 Total=2775.05
CustomerID=GODOS OrderID=10872 Total=2058.46
CustomerID=GODOS OrderID=10948 Total=2362.25
CustomerID=GOURL OrderID=10709 Total=3424.00
CustomerID=GREAL OrderID=10616 Total=4807.00
CustomerID=GREAL OrderID=10816 Total=8446.45
CustomerID=HANAR OrderID=10886 Total=3127.50
CustomerID=HANAR OrderID=10981 Total=15810.00
CustomerID=HILAA OrderID=10395 Total=2122.92
CustomerID=HILAA OrderID=10490 Total=3163.20
CustomerID=HILAA OrderID=10601 Total=2285.00
CustomerID=HILAA OrderID=10641 Total=2054.00
CustomerID=HILAA OrderID=10796 Total=2341.36
CustomerID=HUNGO OrderID=10298 Total=2645.00
CustomerID=HUNGO OrderID=10335 Total=2036.16
CustomerID=HUNGO OrderID=10503 Total=2048.50
CustomerID=HUNGO OrderID=10516 Total=2381.05
CustomerID=HUNGO OrderID=10567 Total=2519.00
CustomerID=HUNGO OrderID=10687 Total=4960.90
CustomerID=HUNGO OrderID=10701 Total=2864.50
CustomerID=HUNGO OrderID=10897 Total=10835.24
CustomerID=HUNGO OrderID=10912 Total=6200.55
CustomerID=HUNGO OrderID=10985 Total=2023.38
CustomerID=KOENE OrderID=10718 Total=3463.00
CustomerID=KOENE OrderID=10817 Total=10952.84
CustomerID=KOENE OrderID=10893 Total=5502.11
CustomerID=KOENE OrderID=11028 Total=2160.00
CustomerID=LAMAI OrderID=10413 Total=2123.20
CustomerID=LAMAI OrderID=10787 Total=2622.76
CustomerID=LEHMS OrderID=10522 Total=2318.24
CustomerID=LEHMS OrderID=10772 Total=3603.22
CustomerID=LILAS OrderID=10823 Total=2826.00
CustomerID=LINOD OrderID=10638 Total=2720.05
CustomerID=LINOD OrderID=11039 Total=3090.00
CustomerID=MAISD OrderID=10760 Total=2917.00
CustomerID=MAISD OrderID=10892 Total=2090.00
CustomerID=MEREP OrderID=10339 Total=3354.00
CustomerID=MEREP OrderID=10424 Total=9194.56
CustomerID=MEREP OrderID=10570 Total=2465.25
CustomerID=MEREP OrderID=10605 Total=4109.70
CustomerID=MEREP OrderID=10618 Total=2697.50
CustomerID=MORGK OrderID=10575 Total=2147.40
CustomerID=OCEAN OrderID=10986 Total=2220.00
CustomerID=OLDWO OrderID=10305 Total=3741.30
CustomerID=OLDWO OrderID=10855 Total=2227.89
CustomerID=OTTIK OrderID=10766 Total=2310.00
CustomerID=PICCO OrderID=10353 Total=8593.28
CustomerID=PICCO OrderID=10530 Total=4180.00
CustomerID=PICCO OrderID=11053 Total=3055.00
CustomerID=PRINI OrderID=11007 Total=2633.90
CustomerID=QUEEN OrderID=10372 Total=9210.90
CustomerID=QUEEN OrderID=10637 Total=2761.94
CustomerID=QUEEN OrderID=11068 Total=2027.08
CustomerID=QUICK OrderID=10273 Total=2037.28
CustomerID=QUICK OrderID=10286 Total=3016.00
CustomerID=QUICK OrderID=10345 Total=2924.80
CustomerID=QUICK OrderID=10361 Total=2046.24
CustomerID=QUICK OrderID=10451 Total=3849.66
CustomerID=QUICK OrderID=10515 Total=9921.30
CustomerID=QUICK OrderID=10540 Total=10191.70
CustomerID=QUICK OrderID=10549 Total=3554.28
CustomerID=QUICK OrderID=10588 Total=3120.00
CustomerID=QUICK OrderID=10658 Total=4464.60
CustomerID=QUICK OrderID=10691 Total=10164.80
CustomerID=QUICK OrderID=10694 Total=4825.00
CustomerID=QUICK OrderID=10745 Total=4529.80
CustomerID=QUICK OrderID=10845 Total=3812.70
CustomerID=QUICK OrderID=10865 Total=16387.50
CustomerID=QUICK OrderID=10938 Total=2731.88
CustomerID=QUICK OrderID=10962 Total=3584.00
CustomerID=QUICK OrderID=10991 Total=2296.00
CustomerID=QUICK OrderID=11021 Total=6306.24
CustomerID=RATTC OrderID=10314 Total=2094.30
CustomerID=RATTC OrderID=10316 Total=2835.00
CustomerID=RATTC OrderID=10401 Total=3868.60
CustomerID=RATTC OrderID=10479 Total=10495.60
CustomerID=RATTC OrderID=10598 Total=2388.50
CustomerID=RATTC OrderID=10852 Total=2984.00
CustomerID=RATTC OrderID=10889 Total=11380.00
CustomerID=RATTC OrderID=10988 Total=3574.80
CustomerID=RICAR OrderID=10851 Total=2603.00
CustomerID=RICSU OrderID=10255 Total=2490.50
CustomerID=RICSU OrderID=10419 Total=2097.60
CustomerID=RICSU OrderID=10666 Total=4666.94
CustomerID=RICSU OrderID=11033 Total=3232.80
CustomerID=SANTG OrderID=10831 Total=2684.40
CustomerID=SAVEA OrderID=10324 Total=5275.72
CustomerID=SAVEA OrderID=10393 Total=2556.95
CustomerID=SAVEA OrderID=10398 Total=2505.60
CustomerID=SAVEA OrderID=10440 Total=4924.14
CustomerID=SAVEA OrderID=10452 Total=2018.50
CustomerID=SAVEA OrderID=10510 Total=4707.54
CustomerID=SAVEA OrderID=10555 Total=2944.40
CustomerID=SAVEA OrderID=10607 Total=6475.40
CustomerID=SAVEA OrderID=10612 Total=6375.00
CustomerID=SAVEA OrderID=10657 Total=4371.60
CustomerID=SAVEA OrderID=10678 Total=5256.50
CustomerID=SAVEA OrderID=10711 Total=4451.70
CustomerID=SAVEA OrderID=10713 Total=2827.90
CustomerID=SAVEA OrderID=10714 Total=2205.75
CustomerID=SAVEA OrderID=10748 Total=2196.00
CustomerID=SAVEA OrderID=10757 Total=3082.00
CustomerID=SAVEA OrderID=10847 Total=4931.92
CustomerID=SAVEA OrderID=10894 Total=2753.10
CustomerID=SAVEA OrderID=10941 Total=4011.75
CustomerID=SAVEA OrderID=11030 Total=12615.05
CustomerID=SAVEA OrderID=11031 Total=2393.50
CustomerID=SAVEA OrderID=11064 Total=4330.40
CustomerID=SEVES OrderID=10359 Total=3471.68
CustomerID=SEVES OrderID=10523 Total=2444.31
CustomerID=SEVES OrderID=10804 Total=2278.40
CustomerID=SIMOB OrderID=10417 Total=11188.40
CustomerID=SIMOB OrderID=10802 Total=2942.81
CustomerID=SPECD OrderID=10964 Total=2052.50
CustomerID=SPLIR OrderID=10329 Total=4578.43
CustomerID=SPLIR OrderID=10369 Total=2390.40
CustomerID=SUPRD OrderID=10252 Total=3597.90
CustomerID=SUPRD OrderID=10302 Total=2708.80
CustomerID=SUPRD OrderID=10458 Total=3891.00
CustomerID=SUPRD OrderID=10841 Total=4581.00
CustomerID=SUPRD OrderID=10930 Total=2255.50
CustomerID=THEBI OrderID=10805 Total=2775.00
CustomerID=TORTU OrderID=10518 Total=4150.05
CustomerID=VAFFE OrderID=10465 Total=2518.00
CustomerID=VAFFE OrderID=10688 Total=3160.60
CustomerID=VICTE OrderID=10546 Total=2812.00
CustomerID=WARTH OrderID=10455 Total=2684.00
CustomerID=WARTH OrderID=10583 Total=2237.50
CustomerID=WHITC OrderID=10344 Total=2296.00
CustomerID=WHITC OrderID=10693 Total=2071.20
CustomerID=WHITC OrderID=10861 Total=3523.40
CustomerID=WHITC OrderID=11032 Total=8902.50


SelectMany - Multiple From

This sample uses multiple from clauses so that filtering on customers can be done before selecting their orders. This makes the query more efficient by not selecting and then discarding orders for customers outside of France.

Public Sub DataSetLinq18()
    Dim customers = TestDS.Tables("Customers").AsEnumerable()

    Dim cutoffDate = #1/1/1997#

    Dim orders = From c In customers, o In c.GetChildRows("CustomersOrders") _
        Where c("Country") = "France" And o("OrderDate") >= cutoffDate _
        Select c!CustomerID, o!OrderID

    For Each x In orders
        Console.WriteLine("CustomerID: {0}, OrderID: {1}", x.CustomerID, x.OrderID)
    Next
End Sub


Result:
CustomerID: BLONP, OrderID: 10436
CustomerID: BLONP, OrderID: 10449
CustomerID: BLONP, OrderID: 10559
CustomerID: BLONP, OrderID: 10566
CustomerID: BLONP, OrderID: 10584
CustomerID: BLONP, OrderID: 10628
CustomerID: BLONP, OrderID: 10679
CustomerID: BLONP, OrderID: 10826
CustomerID: BONAP, OrderID: 10470
CustomerID: BONAP, OrderID: 10511
CustomerID: BONAP, OrderID: 10525
CustomerID: BONAP, OrderID: 10663
CustomerID: BONAP, OrderID: 10715
CustomerID: BONAP, OrderID: 10730
CustomerID: BONAP, OrderID: 10732
CustomerID: BONAP, OrderID: 10755
CustomerID: BONAP, OrderID: 10827
CustomerID: BONAP, OrderID: 10871
CustomerID: BONAP, OrderID: 10876
CustomerID: BONAP, OrderID: 10932
CustomerID: BONAP, OrderID: 10940
CustomerID: BONAP, OrderID: 11076
CustomerID: DUMON, OrderID: 10609
CustomerID: DUMON, OrderID: 10683
CustomerID: DUMON, OrderID: 10890
CustomerID: FOLIG, OrderID: 10408
CustomerID: FOLIG, OrderID: 10480
CustomerID: FOLIG, OrderID: 10634
CustomerID: FOLIG, OrderID: 10763
CustomerID: FOLIG, OrderID: 10789
CustomerID: FRANR, OrderID: 10671
CustomerID: FRANR, OrderID: 10860
CustomerID: FRANR, OrderID: 10971
CustomerID: LACOR, OrderID: 10858
CustomerID: LACOR, OrderID: 10927
CustomerID: LACOR, OrderID: 10972
CustomerID: LACOR, OrderID: 10973
CustomerID: LAMAI, OrderID: 10413
CustomerID: LAMAI, OrderID: 10425
CustomerID: LAMAI, OrderID: 10454
CustomerID: LAMAI, OrderID: 10493
CustomerID: LAMAI, OrderID: 10500
CustomerID: LAMAI, OrderID: 10610
CustomerID: LAMAI, OrderID: 10631
CustomerID: LAMAI, OrderID: 10787
CustomerID: LAMAI, OrderID: 10832
CustomerID: LAMAI, OrderID: 10923
CustomerID: LAMAI, OrderID: 11051
CustomerID: SPECD, OrderID: 10738
CustomerID: SPECD, OrderID: 10907
CustomerID: SPECD, OrderID: 10964
CustomerID: SPECD, OrderID: 11043
CustomerID: VICTE, OrderID: 10450
CustomerID: VICTE, OrderID: 10459
CustomerID: VICTE, OrderID: 10478
CustomerID: VICTE, OrderID: 10546
CustomerID: VICTE, OrderID: 10806
CustomerID: VICTE, OrderID: 10814
CustomerID: VICTE, OrderID: 10843
CustomerID: VICTE, OrderID: 10850
CustomerID: VINET, OrderID: 10737
CustomerID: VINET, OrderID: 10739


SelectMany - Indexed

This sample uses an indexed SelectMany clause to select all orders, while referring to customers by the order in which they are returned from the query.

Public Sub DataSetLinq19()

    Dim customers As IEnumerable(Of DataRow) = TestDS.Tables("Customers").AsEnumerable()
    Dim orders As IEnumerable(Of DataRow) = TestDS.Tables("Orders").AsEnumerable()

    Dim customerOrders = customers.SelectMany( _
                                Function(cust, custIndex) orders.Where( _
                                Function(o) cust("CustomerID") = o("CustomerID")) _
                                .Select(Function(o) New With _
                                            {.CustomerIndex = custIndex + 1, .OrderID = o("OrderID")}))

    For Each c In customerOrders
        Console.WriteLine("Customer Index: " & c.CustomerIndex & _
                            " has an order with OrderID " & c.OrderID)
    Next
End Sub


Result:
Customer Index: 1 has an order with OrderID 10643
Customer Index: 1 has an order with OrderID 10692
Customer Index: 1 has an order with OrderID 10702
Customer Index: 1 has an order with OrderID 10835
Customer Index: 1 has an order with OrderID 10952
Customer Index: 1 has an order with OrderID 11011
Customer Index: 2 has an order with OrderID 10308
Customer Index: 2 has an order with OrderID 10625
Customer Index: 2 has an order with OrderID 10759
Customer Index: 2 has an order with OrderID 10926
Customer Index: 3 has an order with OrderID 10365
Customer Index: 3 has an order with OrderID 10507
Customer Index: 3 has an order with OrderID 10535
Customer Index: 3 has an order with OrderID 10573
Customer Index: 3 has an order with OrderID 10677
Customer Index: 3 has an order with OrderID 10682
Customer Index: 3 has an order with OrderID 10856
Customer Index: 4 has an order with OrderID 10355
Customer Index: 4 has an order with OrderID 10383
Customer Index: 4 has an order with OrderID 10453
Customer Index: 4 has an order with OrderID 10558
Customer Index: 4 has an order with OrderID 10707
Customer Index: 4 has an order with OrderID 10741
Customer Index: 4 has an order with OrderID 10743
Customer Index: 4 has an order with OrderID 10768
Customer Index: 4 has an order with OrderID 10793
Customer Index: 4 has an order with OrderID 10864
Customer Index: 4 has an order with OrderID 10920
Customer Index: 4 has an order with OrderID 10953
Customer Index: 4 has an order with OrderID 11016
Customer Index: 5 has an order with OrderID 10278
Customer Index: 5 has an order with OrderID 10280
Customer Index: 5 has an order with OrderID 10384
Customer Index: 5 has an order with OrderID 10444
Customer Index: 5 has an order with OrderID 10445
Customer Index: 5 has an order with OrderID 10524
Customer Index: 5 has an order with OrderID 10572
Customer Index: 5 has an order with OrderID 10626
Customer Index: 5 has an order with OrderID 10654
Customer Index: 5 has an order with OrderID 10672
Customer Index: 5 has an order with OrderID 10689
Customer Index: 5 has an order with OrderID 10733
Customer Index: 5 has an order with OrderID 10778
Customer Index: 5 has an order with OrderID 10837
Customer Index: 5 has an order with OrderID 10857
Customer Index: 5 has an order with OrderID 10866
Customer Index: 5 has an order with OrderID 10875
Customer Index: 5 has an order with OrderID 10924
Customer Index: 6 has an order with OrderID 10501
Customer Index: 6 has an order with OrderID 10509
Customer Index: 6 has an order with OrderID 10582
Customer Index: 6 has an order with OrderID 10614
Customer Index: 6 has an order with OrderID 10853
Customer Index: 6 has an order with OrderID 10956
Customer Index: 6 has an order with OrderID 11058
Customer Index: 7 has an order with OrderID 10265
Customer Index: 7 has an order with OrderID 10297
Customer Index: 7 has an order with OrderID 10360
Customer Index: 7 has an order with OrderID 10436
Customer Index: 7 has an order with OrderID 10449
Customer Index: 7 has an order with OrderID 10559
Customer Index: 7 has an order with OrderID 10566
Customer Index: 7 has an order with OrderID 10584
Customer Index: 7 has an order with OrderID 10628
Customer Index: 7 has an order with OrderID 10679
Customer Index: 7 has an order with OrderID 10826
Customer Index: 8 has an order with OrderID 10326
Customer Index: 8 has an order with OrderID 10801
Customer Index: 8 has an order with OrderID 10970
Customer Index: 9 has an order with OrderID 10331
Customer Index: 9 has an order with OrderID 10340
Customer Index: 9 has an order with OrderID 10362
Customer Index: 9 has an order with OrderID 10470
Customer Index: 9 has an order with OrderID 10511
Customer Index: 9 has an order with OrderID 10525
Customer Index: 9 has an order with OrderID 10663
Customer Index: 9 has an order with OrderID 10715
Customer Index: 9 has an order with OrderID 10730
Customer Index: 9 has an order with OrderID 10732
Customer Index: 9 has an order with OrderID 10755
Customer Index: 9 has an order with OrderID 10827
Customer Index: 9 has an order with OrderID 10871
Customer Index: 9 has an order with OrderID 10876
Customer Index: 9 has an order with OrderID 10932
Customer Index: 9 has an order with OrderID 10940
Customer Index: 9 has an order with OrderID 11076
Customer Index: 10 has an order with OrderID 10389
Customer Index: 10 has an order with OrderID 10410
Customer Index: 10 has an order with OrderID 10411
Customer Index: 10 has an order with OrderID 10431
Customer Index: 10 has an order with OrderID 10492
Customer Index: 10 has an order with OrderID 10742
Customer Index: 10 has an order with OrderID 10918
Customer Index: 10 has an order with OrderID 10944
Customer Index: 10 has an order with OrderID 10949
Customer Index: 10 has an order with OrderID 10975
Customer Index: 10 has an order with OrderID 10982
Customer Index: 10 has an order with OrderID 11027
Customer Index: 10 has an order with OrderID 11045
Customer Index: 10 has an order with OrderID 11048
Customer Index: 11 has an order with OrderID 10289
Customer Index: 11 has an order with OrderID 10471
Customer Index: 11 has an order with OrderID 10484
Customer Index: 11 has an order with OrderID 10538
Customer Index: 11 has an order with OrderID 10539
Customer Index: 11 has an order with OrderID 10578
Customer Index: 11 has an order with OrderID 10599
Customer Index: 11 has an order with OrderID 10943
Customer Index: 11 has an order with OrderID 10947
Customer Index: 11 has an order with OrderID 11023
Customer Index: 12 has an order with OrderID 10521
Customer Index: 12 has an order with OrderID 10782
Customer Index: 12 has an order with OrderID 10819
Customer Index: 12 has an order with OrderID 10881
Customer Index: 12 has an order with OrderID 10937
Customer Index: 12 has an order with OrderID 11054
Customer Index: 13 has an order with OrderID 10259
Customer Index: 14 has an order with OrderID 10254
Customer Index: 14 has an order with OrderID 10370
Customer Index: 14 has an order with OrderID 10519
Customer Index: 14 has an order with OrderID 10731
Customer Index: 14 has an order with OrderID 10746
Customer Index: 14 has an order with OrderID 10966
Customer Index: 14 has an order with OrderID 11029
Customer Index: 14 has an order with OrderID 11041
Customer Index: 15 has an order with OrderID 10290
Customer Index: 15 has an order with OrderID 10466
Customer Index: 15 has an order with OrderID 10494
Customer Index: 15 has an order with OrderID 10969
Customer Index: 15 has an order with OrderID 11042
Customer Index: 16 has an order with OrderID 10435
Customer Index: 16 has an order with OrderID 10462
Customer Index: 16 has an order with OrderID 10848
Customer Index: 17 has an order with OrderID 10363
Customer Index: 17 has an order with OrderID 10391
Customer Index: 17 has an order with OrderID 10797
Customer Index: 17 has an order with OrderID 10825
Customer Index: 17 has an order with OrderID 11036
Customer Index: 17 has an order with OrderID 11067
Customer Index: 18 has an order with OrderID 10311
Customer Index: 18 has an order with OrderID 10609
Customer Index: 18 has an order with OrderID 10683
Customer Index: 18 has an order with OrderID 10890
Customer Index: 19 has an order with OrderID 10364
Customer Index: 19 has an order with OrderID 10400
Customer Index: 19 has an order with OrderID 10532
Customer Index: 19 has an order with OrderID 10726
Customer Index: 19 has an order with OrderID 10987
Customer Index: 19 has an order with OrderID 11024
Customer Index: 19 has an order with OrderID 11047
Customer Index: 19 has an order with OrderID 11056
Customer Index: 20 has an order with OrderID 10258
Customer Index: 20 has an order with OrderID 10263
Customer Index: 20 has an order with OrderID 10351
Customer Index: 20 has an order with OrderID 10368
Customer Index: 20 has an order with OrderID 10382
Customer Index: 20 has an order with OrderID 10390
Customer Index: 20 has an order with OrderID 10402
Customer Index: 20 has an order with OrderID 10403
Customer Index: 20 has an order with OrderID 10430
Customer Index: 20 has an order with OrderID 10442
Customer Index: 20 has an order with OrderID 10514
Customer Index: 20 has an order with OrderID 10571
Customer Index: 20 has an order with OrderID 10595
Customer Index: 20 has an order with OrderID 10633
Customer Index: 20 has an order with OrderID 10667
Customer Index: 20 has an order with OrderID 10698
Customer Index: 20 has an order with OrderID 10764
Customer Index: 20 has an order with OrderID 10771
Customer Index: 20 has an order with OrderID 10773
Customer Index: 20 has an order with OrderID 10776
Customer Index: 20 has an order with OrderID 10795
Customer Index: 20 has an order with OrderID 10836
Customer Index: 20 has an order with OrderID 10854
Customer Index: 20 has an order with OrderID 10895
Customer Index: 20 has an order with OrderID 10968
Customer Index: 20 has an order with OrderID 10979
Customer Index: 20 has an order with OrderID 10990
Customer Index: 20 has an order with OrderID 11008
Customer Index: 20 has an order with OrderID 11017
Customer Index: 20 has an order with OrderID 11072
Customer Index: 21 has an order with OrderID 10347
Customer Index: 21 has an order with OrderID 10386
Customer Index: 21 has an order with OrderID 10414
Customer Index: 21 has an order with OrderID 10512
Customer Index: 21 has an order with OrderID 10581
Customer Index: 21 has an order with OrderID 10650
Customer Index: 21 has an order with OrderID 10725
Customer Index: 23 has an order with OrderID 10408
Customer Index: 23 has an order with OrderID 10480
Customer Index: 23 has an order with OrderID 10634
Customer Index: 23 has an order with OrderID 10763
Customer Index: 23 has an order with OrderID 10789
Customer Index: 24 has an order with OrderID 10264
Customer Index: 24 has an order with OrderID 10327
Customer Index: 24 has an order with OrderID 10378
Customer Index: 24 has an order with OrderID 10434
Customer Index: 24 has an order with OrderID 10460
Customer Index: 24 has an order with OrderID 10533
Customer Index: 24 has an order with OrderID 10561
Customer Index: 24 has an order with OrderID 10703
Customer Index: 24 has an order with OrderID 10762
Customer Index: 24 has an order with OrderID 10774
Customer Index: 24 has an order with OrderID 10824
Customer Index: 24 has an order with OrderID 10880
Customer Index: 24 has an order with OrderID 10902
Customer Index: 24 has an order with OrderID 10955
Customer Index: 24 has an order with OrderID 10977
Customer Index: 24 has an order with OrderID 10980
Customer Index: 24 has an order with OrderID 10993
Customer Index: 24 has an order with OrderID 11001
Customer Index: 24 has an order with OrderID 11050
Customer Index: 25 has an order with OrderID 10267
Customer Index: 25 has an order with OrderID 10337
Customer Index: 25 has an order with OrderID 10342
Customer Index: 25 has an order with OrderID 10396
Customer Index: 25 has an order with OrderID 10488
Customer Index: 25 has an order with OrderID 10560
Customer Index: 25 has an order with OrderID 10623
Customer Index: 25 has an order with OrderID 10653
Customer Index: 25 has an order with OrderID 10670
Customer Index: 25 has an order with OrderID 10675
Customer Index: 25 has an order with OrderID 10717
Customer Index: 25 has an order with OrderID 10791
Customer Index: 25 has an order with OrderID 10859
Customer Index: 25 has an order with OrderID 10929
Customer Index: 25 has an order with OrderID 11012
Customer Index: 26 has an order with OrderID 10671
Customer Index: 26 has an order with OrderID 10860
Customer Index: 26 has an order with OrderID 10971
Customer Index: 27 has an order with OrderID 10422
Customer Index: 27 has an order with OrderID 10710
Customer Index: 27 has an order with OrderID 10753
Customer Index: 27 has an order with OrderID 10807
Customer Index: 27 has an order with OrderID 11026
Customer Index: 27 has an order with OrderID 11060
Customer Index: 28 has an order with OrderID 10328
Customer Index: 28 has an order with OrderID 10352
Customer Index: 28 has an order with OrderID 10464
Customer Index: 28 has an order with OrderID 10491
Customer Index: 28 has an order with OrderID 10551
Customer Index: 28 has an order with OrderID 10604
Customer Index: 28 has an order with OrderID 10664
Customer Index: 28 has an order with OrderID 10963
Customer Index: 29 has an order with OrderID 10366
Customer Index: 29 has an order with OrderID 10426
Customer Index: 29 has an order with OrderID 10568
Customer Index: 29 has an order with OrderID 10887
Customer Index: 29 has an order with OrderID 10928
Customer Index: 30 has an order with OrderID 10303
Customer Index: 30 has an order with OrderID 10550
Customer Index: 30 has an order with OrderID 10629
Customer Index: 30 has an order with OrderID 10872
Customer Index: 30 has an order with OrderID 10874
Customer Index: 30 has an order with OrderID 10888
Customer Index: 30 has an order with OrderID 10911
Customer Index: 30 has an order with OrderID 10948
Customer Index: 30 has an order with OrderID 11009
Customer Index: 30 has an order with OrderID 11037
Customer Index: 31 has an order with OrderID 10423
Customer Index: 31 has an order with OrderID 10652
Customer Index: 31 has an order with OrderID 10685
Customer Index: 31 has an order with OrderID 10709
Customer Index: 31 has an order with OrderID 10734
Customer Index: 31 has an order with OrderID 10777
Customer Index: 31 has an order with OrderID 10790
Customer Index: 31 has an order with OrderID 10959
Customer Index: 31 has an order with OrderID 11049
Customer Index: 32 has an order with OrderID 10528
Customer Index: 32 has an order with OrderID 10589
Customer Index: 32 has an order with OrderID 10616
Customer Index: 32 has an order with OrderID 10617
Customer Index: 32 has an order with OrderID 10656
Customer Index: 32 has an order with OrderID 10681
Customer Index: 32 has an order with OrderID 10816
Customer Index: 32 has an order with OrderID 10936
Customer Index: 32 has an order with OrderID 11006
Customer Index: 32 has an order with OrderID 11040
Customer Index: 32 has an order with OrderID 11061
Customer Index: 33 has an order with OrderID 10268
Customer Index: 33 has an order with OrderID 10785
Customer Index: 34 has an order with OrderID 10250
Customer Index: 34 has an order with OrderID 10253
Customer Index: 34 has an order with OrderID 10541
Customer Index: 34 has an order with OrderID 10645
Customer Index: 34 has an order with OrderID 10690
Customer Index: 34 has an order with OrderID 10770
Customer Index: 34 has an order with OrderID 10783
Customer Index: 34 has an order with OrderID 10886
Customer Index: 34 has an order with OrderID 10903
Customer Index: 34 has an order with OrderID 10922
Customer Index: 34 has an order with OrderID 10925
Customer Index: 34 has an order with OrderID 10981
Customer Index: 34 has an order with OrderID 11022
Customer Index: 34 has an order with OrderID 11052
Customer Index: 35 has an order with OrderID 10257
Customer Index: 35 has an order with OrderID 10395
Customer Index: 35 has an order with OrderID 10476
Customer Index: 35 has an order with OrderID 10486
Customer Index: 35 has an order with OrderID 10490
Customer Index: 35 has an order with OrderID 10498
Customer Index: 35 has an order with OrderID 10552
Customer Index: 35 has an order with OrderID 10601
Customer Index: 35 has an order with OrderID 10613
Customer Index: 35 has an order with OrderID 10641
Customer Index: 35 has an order with OrderID 10705
Customer Index: 35 has an order with OrderID 10796
Customer Index: 35 has an order with OrderID 10863
Customer Index: 35 has an order with OrderID 10901
Customer Index: 35 has an order with OrderID 10957
Customer Index: 35 has an order with OrderID 10960
Customer Index: 35 has an order with OrderID 10976
Customer Index: 35 has an order with OrderID 11055
Customer Index: 36 has an order with OrderID 10375
Customer Index: 36 has an order with OrderID 10394
Customer Index: 36 has an order with OrderID 10415
Customer Index: 36 has an order with OrderID 10600
Customer Index: 36 has an order with OrderID 10660
Customer Index: 37 has an order with OrderID 10298
Customer Index: 37 has an order with OrderID 10309
Customer Index: 37 has an order with OrderID 10335
Customer Index: 37 has an order with OrderID 10373
Customer Index: 37 has an order with OrderID 10380
Customer Index: 37 has an order with OrderID 10429
Customer Index: 37 has an order with OrderID 10503
Customer Index: 37 has an order with OrderID 10516
Customer Index: 37 has an order with OrderID 10567
Customer Index: 37 has an order with OrderID 10646
Customer Index: 37 has an order with OrderID 10661
Customer Index: 37 has an order with OrderID 10687
Customer Index: 37 has an order with OrderID 10701
Customer Index: 37 has an order with OrderID 10712
Customer Index: 37 has an order with OrderID 10736
Customer Index: 37 has an order with OrderID 10897
Customer Index: 37 has an order with OrderID 10912
Customer Index: 37 has an order with OrderID 10985
Customer Index: 37 has an order with OrderID 11063
Customer Index: 38 has an order with OrderID 10315
Customer Index: 38 has an order with OrderID 10318
Customer Index: 38 has an order with OrderID 10321
Customer Index: 38 has an order with OrderID 10473
Customer Index: 38 has an order with OrderID 10621
Customer Index: 38 has an order with OrderID 10674
Customer Index: 38 has an order with OrderID 10749
Customer Index: 38 has an order with OrderID 10798
Customer Index: 38 has an order with OrderID 10829
Customer Index: 38 has an order with OrderID 10933
Customer Index: 39 has an order with OrderID 10323
Customer Index: 39 has an order with OrderID 10325
Customer Index: 39 has an order with OrderID 10456
Customer Index: 39 has an order with OrderID 10457
Customer Index: 39 has an order with OrderID 10468
Customer Index: 39 has an order with OrderID 10506
Customer Index: 39 has an order with OrderID 10542
Customer Index: 39 has an order with OrderID 10630
Customer Index: 39 has an order with OrderID 10718
Customer Index: 39 has an order with OrderID 10799
Customer Index: 39 has an order with OrderID 10817
Customer Index: 39 has an order with OrderID 10849
Customer Index: 39 has an order with OrderID 10893
Customer Index: 39 has an order with OrderID 11028
Customer Index: 40 has an order with OrderID 10858
Customer Index: 40 has an order with OrderID 10927
Customer Index: 40 has an order with OrderID 10972
Customer Index: 40 has an order with OrderID 10973
Customer Index: 41 has an order with OrderID 10350
Customer Index: 41 has an order with OrderID 10358
Customer Index: 41 has an order with OrderID 10371
Customer Index: 41 has an order with OrderID 10413
Customer Index: 41 has an order with OrderID 10425
Customer Index: 41 has an order with OrderID 10454
Customer Index: 41 has an order with OrderID 10493
Customer Index: 41 has an order with OrderID 10500
Customer Index: 41 has an order with OrderID 10610
Customer Index: 41 has an order with OrderID 10631
Customer Index: 41 has an order with OrderID 10787
Customer Index: 41 has an order with OrderID 10832
Customer Index: 41 has an order with OrderID 10923
Customer Index: 41 has an order with OrderID 11051
Customer Index: 42 has an order with OrderID 10495
Customer Index: 42 has an order with OrderID 10620
Customer Index: 42 has an order with OrderID 10810
Customer Index: 43 has an order with OrderID 10482
Customer Index: 43 has an order with OrderID 10545
Customer Index: 44 has an order with OrderID 10279
Customer Index: 44 has an order with OrderID 10284
Customer Index: 44 has an order with OrderID 10343
Customer Index: 44 has an order with OrderID 10497
Customer Index: 44 has an order with OrderID 10522
Customer Index: 44 has an order with OrderID 10534
Customer Index: 44 has an order with OrderID 10536
Customer Index: 44 has an order with OrderID 10557
Customer Index: 44 has an order with OrderID 10592
Customer Index: 44 has an order with OrderID 10593
Customer Index: 44 has an order with OrderID 10772
Customer Index: 44 has an order with OrderID 10862
Customer Index: 44 has an order with OrderID 10891
Customer Index: 44 has an order with OrderID 10934
Customer Index: 44 has an order with OrderID 11070
Customer Index: 45 has an order with OrderID 10579
Customer Index: 45 has an order with OrderID 10719
Customer Index: 45 has an order with OrderID 10735
Customer Index: 45 has an order with OrderID 10884
Customer Index: 46 has an order with OrderID 10283
Customer Index: 46 has an order with OrderID 10296
Customer Index: 46 has an order with OrderID 10330
Customer Index: 46 has an order with OrderID 10357
Customer Index: 46 has an order with OrderID 10381
Customer Index: 46 has an order with OrderID 10461
Customer Index: 46 has an order with OrderID 10499
Customer Index: 46 has an order with OrderID 10543
Customer Index: 46 has an order with OrderID 10780
Customer Index: 46 has an order with OrderID 10823
Customer Index: 46 has an order with OrderID 10899
Customer Index: 46 has an order with OrderID 10997
Customer Index: 46 has an order with OrderID 11065
Customer Index: 46 has an order with OrderID 11071
Customer Index: 47 has an order with OrderID 10405
Customer Index: 47 has an order with OrderID 10485
Customer Index: 47 has an order with OrderID 10638
Customer Index: 47 has an order with OrderID 10697
Customer Index: 47 has an order with OrderID 10729
Customer Index: 47 has an order with OrderID 10811
Customer Index: 47 has an order with OrderID 10838
Customer Index: 47 has an order with OrderID 10840
Customer Index: 47 has an order with OrderID 10919
Customer Index: 47 has an order with OrderID 10954
Customer Index: 47 has an order with OrderID 11014
Customer Index: 47 has an order with OrderID 11039
Customer Index: 48 has an order with OrderID 10307
Customer Index: 48 has an order with OrderID 10317
Customer Index: 48 has an order with OrderID 10544
Customer Index: 48 has an order with OrderID 10662
Customer Index: 48 has an order with OrderID 10665
Customer Index: 48 has an order with OrderID 10867
Customer Index: 48 has an order with OrderID 10883
Customer Index: 48 has an order with OrderID 11018
Customer Index: 49 has an order with OrderID 10275
Customer Index: 49 has an order with OrderID 10300
Customer Index: 49 has an order with OrderID 10404
Customer Index: 49 has an order with OrderID 10467
Customer Index: 49 has an order with OrderID 10635
Customer Index: 49 has an order with OrderID 10754
Customer Index: 49 has an order with OrderID 10784
Customer Index: 49 has an order with OrderID 10818
Customer Index: 49 has an order with OrderID 10939
Customer Index: 49 has an order with OrderID 10950
Customer Index: 50 has an order with OrderID 10529
Customer Index: 50 has an order with OrderID 10649
Customer Index: 50 has an order with OrderID 10760
Customer Index: 50 has an order with OrderID 10892
Customer Index: 50 has an order with OrderID 10896
Customer Index: 50 has an order with OrderID 10978
Customer Index: 50 has an order with OrderID 11004
Customer Index: 51 has an order with OrderID 10332
Customer Index: 51 has an order with OrderID 10339
Customer Index: 51 has an order with OrderID 10376
Customer Index: 51 has an order with OrderID 10424
Customer Index: 51 has an order with OrderID 10439
Customer Index: 51 has an order with OrderID 10505
Customer Index: 51 has an order with OrderID 10565
Customer Index: 51 has an order with OrderID 10570
Customer Index: 51 has an order with OrderID 10590
Customer Index: 51 has an order with OrderID 10605
Customer Index: 51 has an order with OrderID 10618
Customer Index: 51 has an order with OrderID 10619
Customer Index: 51 has an order with OrderID 10724
Customer Index: 52 has an order with OrderID 10277
Customer Index: 52 has an order with OrderID 10575
Customer Index: 52 has an order with OrderID 10699
Customer Index: 52 has an order with OrderID 10779
Customer Index: 52 has an order with OrderID 10945
Customer Index: 53 has an order with OrderID 10517
Customer Index: 53 has an order with OrderID 10752
Customer Index: 53 has an order with OrderID 11057
Customer Index: 54 has an order with OrderID 10409
Customer Index: 54 has an order with OrderID 10531
Customer Index: 54 has an order with OrderID 10898
Customer Index: 54 has an order with OrderID 10958
Customer Index: 54 has an order with OrderID 10986
Customer Index: 55 has an order with OrderID 10260
Customer Index: 55 has an order with OrderID 10305
Customer Index: 55 has an order with OrderID 10338
Customer Index: 55 has an order with OrderID 10441
Customer Index: 55 has an order with OrderID 10594
Customer Index: 55 has an order with OrderID 10680
Customer Index: 55 has an order with OrderID 10706
Customer Index: 55 has an order with OrderID 10855
Customer Index: 55 has an order with OrderID 10965
Customer Index: 55 has an order with OrderID 11034
Customer Index: 56 has an order with OrderID 10407
Customer Index: 56 has an order with OrderID 10508
Customer Index: 56 has an order with OrderID 10554
Customer Index: 56 has an order with OrderID 10580
Customer Index: 56 has an order with OrderID 10684
Customer Index: 56 has an order with OrderID 10766
Customer Index: 56 has an order with OrderID 10833
Customer Index: 56 has an order with OrderID 10999
Customer Index: 56 has an order with OrderID 11020
Customer Index: 58 has an order with OrderID 10322
Customer Index: 58 has an order with OrderID 10354
Customer Index: 58 has an order with OrderID 10474
Customer Index: 58 has an order with OrderID 10502
Customer Index: 58 has an order with OrderID 10995
Customer Index: 58 has an order with OrderID 11073
Customer Index: 59 has an order with OrderID 10353
Customer Index: 59 has an order with OrderID 10392
Customer Index: 59 has an order with OrderID 10427
Customer Index: 59 has an order with OrderID 10489
Customer Index: 59 has an order with OrderID 10530
Customer Index: 59 has an order with OrderID 10597
Customer Index: 59 has an order with OrderID 10686
Customer Index: 59 has an order with OrderID 10747
Customer Index: 59 has an order with OrderID 10844
Customer Index: 59 has an order with OrderID 11053
Customer Index: 60 has an order with OrderID 10336
Customer Index: 60 has an order with OrderID 10397
Customer Index: 60 has an order with OrderID 10433
Customer Index: 60 has an order with OrderID 10477
Customer Index: 60 has an order with OrderID 10808
Customer Index: 60 has an order with OrderID 11007
Customer Index: 61 has an order with OrderID 10261
Customer Index: 61 has an order with OrderID 10291
Customer Index: 61 has an order with OrderID 10379
Customer Index: 61 has an order with OrderID 10421
Customer Index: 61 has an order with OrderID 10587
Customer Index: 61 has an order with OrderID 10647
Customer Index: 61 has an order with OrderID 10720
Customer Index: 61 has an order with OrderID 10794
Customer Index: 61 has an order with OrderID 10989
Customer Index: 62 has an order with OrderID 10372
Customer Index: 62 has an order with OrderID 10406
Customer Index: 62 has an order with OrderID 10487
Customer Index: 62 has an order with OrderID 10637
Customer Index: 62 has an order with OrderID 10659
Customer Index: 62 has an order with OrderID 10704
Customer Index: 62 has an order with OrderID 10728
Customer Index: 62 has an order with OrderID 10786
Customer Index: 62 has an order with OrderID 10868
Customer Index: 62 has an order with OrderID 10913
Customer Index: 62 has an order with OrderID 10914
Customer Index: 62 has an order with OrderID 10961
Customer Index: 62 has an order with OrderID 11068
Customer Index: 63 has an order with OrderID 10273
Customer Index: 63 has an order with OrderID 10285
Customer Index: 63 has an order with OrderID 10286
Customer Index: 63 has an order with OrderID 10313
Customer Index: 63 has an order with OrderID 10345
Customer Index: 63 has an order with OrderID 10361
Customer Index: 63 has an order with OrderID 10418
Customer Index: 63 has an order with OrderID 10451
Customer Index: 63 has an order with OrderID 10515
Customer Index: 63 has an order with OrderID 10527
Customer Index: 63 has an order with OrderID 10540
Customer Index: 63 has an order with OrderID 10549
Customer Index: 63 has an order with OrderID 10588
Customer Index: 63 has an order with OrderID 10658
Customer Index: 63 has an order with OrderID 10691
Customer Index: 63 has an order with OrderID 10694
Customer Index: 63 has an order with OrderID 10721
Customer Index: 63 has an order with OrderID 10745
Customer Index: 63 has an order with OrderID 10765
Customer Index: 63 has an order with OrderID 10788
Customer Index: 63 has an order with OrderID 10845
Customer Index: 63 has an order with OrderID 10865
Customer Index: 63 has an order with OrderID 10878
Customer Index: 63 has an order with OrderID 10938
Customer Index: 63 has an order with OrderID 10962
Customer Index: 63 has an order with OrderID 10991
Customer Index: 63 has an order with OrderID 10996
Customer Index: 63 has an order with OrderID 11021
Customer Index: 64 has an order with OrderID 10448
Customer Index: 64 has an order with OrderID 10716
Customer Index: 64 has an order with OrderID 10828
Customer Index: 64 has an order with OrderID 10916
Customer Index: 64 has an order with OrderID 11019
Customer Index: 65 has an order with OrderID 10262
Customer Index: 65 has an order with OrderID 10272
Customer Index: 65 has an order with OrderID 10294
Customer Index: 65 has an order with OrderID 10314
Customer Index: 65 has an order with OrderID 10316
Customer Index: 65 has an order with OrderID 10346
Customer Index: 65 has an order with OrderID 10401
Customer Index: 65 has an order with OrderID 10479
Customer Index: 65 has an order with OrderID 10564
Customer Index: 65 has an order with OrderID 10569
Customer Index: 65 has an order with OrderID 10598
Customer Index: 65 has an order with OrderID 10761
Customer Index: 65 has an order with OrderID 10820
Customer Index: 65 has an order with OrderID 10852
Customer Index: 65 has an order with OrderID 10889
Customer Index: 65 has an order with OrderID 10988
Customer Index: 65 has an order with OrderID 11000
Customer Index: 65 has an order with OrderID 11077
Customer Index: 66 has an order with OrderID 10288
Customer Index: 66 has an order with OrderID 10428
Customer Index: 66 has an order with OrderID 10443
Customer Index: 66 has an order with OrderID 10562
Customer Index: 66 has an order with OrderID 10586
Customer Index: 66 has an order with OrderID 10655
Customer Index: 66 has an order with OrderID 10727
Customer Index: 66 has an order with OrderID 10812
Customer Index: 66 has an order with OrderID 10908
Customer Index: 66 has an order with OrderID 10942
Customer Index: 66 has an order with OrderID 11010
Customer Index: 66 has an order with OrderID 11062
Customer Index: 67 has an order with OrderID 10287
Customer Index: 67 has an order with OrderID 10299
Customer Index: 67 has an order with OrderID 10447
Customer Index: 67 has an order with OrderID 10481
Customer Index: 67 has an order with OrderID 10563
Customer Index: 67 has an order with OrderID 10622
Customer Index: 67 has an order with OrderID 10648
Customer Index: 67 has an order with OrderID 10813
Customer Index: 67 has an order with OrderID 10851
Customer Index: 67 has an order with OrderID 10877
Customer Index: 67 has an order with OrderID 11059
Customer Index: 68 has an order with OrderID 10255
Customer Index: 68 has an order with OrderID 10419
Customer Index: 68 has an order with OrderID 10537
Customer Index: 68 has an order with OrderID 10666
Customer Index: 68 has an order with OrderID 10751
Customer Index: 68 has an order with OrderID 10758
Customer Index: 68 has an order with OrderID 10931
Customer Index: 68 has an order with OrderID 10951
Customer Index: 68 has an order with OrderID 11033
Customer Index: 68 has an order with OrderID 11075
Customer Index: 69 has an order with OrderID 10281
Customer Index: 69 has an order with OrderID 10282
Customer Index: 69 has an order with OrderID 10306
Customer Index: 69 has an order with OrderID 10917
Customer Index: 69 has an order with OrderID 11013
Customer Index: 70 has an order with OrderID 10387
Customer Index: 70 has an order with OrderID 10520
Customer Index: 70 has an order with OrderID 10639
Customer Index: 70 has an order with OrderID 10831
Customer Index: 70 has an order with OrderID 10909
Customer Index: 70 has an order with OrderID 11015
Customer Index: 71 has an order with OrderID 10324
Customer Index: 71 has an order with OrderID 10393
Customer Index: 71 has an order with OrderID 10398
Customer Index: 71 has an order with OrderID 10440
Customer Index: 71 has an order with OrderID 10452
Customer Index: 71 has an order with OrderID 10510
Customer Index: 71 has an order with OrderID 10555
Customer Index: 71 has an order with OrderID 10603
Customer Index: 71 has an order with OrderID 10607
Customer Index: 71 has an order with OrderID 10612
Customer Index: 71 has an order with OrderID 10627
Customer Index: 71 has an order with OrderID 10657
Customer Index: 71 has an order with OrderID 10678
Customer Index: 71 has an order with OrderID 10700
Customer Index: 71 has an order with OrderID 10711
Customer Index: 71 has an order with OrderID 10713
Customer Index: 71 has an order with OrderID 10714
Customer Index: 71 has an order with OrderID 10722
Customer Index: 71 has an order with OrderID 10748
Customer Index: 71 has an order with OrderID 10757
Customer Index: 71 has an order with OrderID 10815
Customer Index: 71 has an order with OrderID 10847
Customer Index: 71 has an order with OrderID 10882
Customer Index: 71 has an order with OrderID 10894
Customer Index: 71 has an order with OrderID 10941
Customer Index: 71 has an order with OrderID 10983
Customer Index: 71 has an order with OrderID 10984
Customer Index: 71 has an order with OrderID 11002
Customer Index: 71 has an order with OrderID 11030
Customer Index: 71 has an order with OrderID 11031
Customer Index: 71 has an order with OrderID 11064
Customer Index: 72 has an order with OrderID 10359
Customer Index: 72 has an order with OrderID 10377
Customer Index: 72 has an order with OrderID 10388
Customer Index: 72 has an order with OrderID 10472
Customer Index: 72 has an order with OrderID 10523
Customer Index: 72 has an order with OrderID 10547
Customer Index: 72 has an order with OrderID 10800
Customer Index: 72 has an order with OrderID 10804
Customer Index: 72 has an order with OrderID 10869
Customer Index: 73 has an order with OrderID 10341
Customer Index: 73 has an order with OrderID 10417
Customer Index: 73 has an order with OrderID 10556
Customer Index: 73 has an order with OrderID 10642
Customer Index: 73 has an order with OrderID 10669
Customer Index: 73 has an order with OrderID 10802
Customer Index: 73 has an order with OrderID 11074
Customer Index: 74 has an order with OrderID 10738
Customer Index: 74 has an order with OrderID 10907
Customer Index: 74 has an order with OrderID 10964
Customer Index: 74 has an order with OrderID 11043
Customer Index: 75 has an order with OrderID 10271
Customer Index: 75 has an order with OrderID 10329
Customer Index: 75 has an order with OrderID 10349
Customer Index: 75 has an order with OrderID 10369
Customer Index: 75 has an order with OrderID 10385
Customer Index: 75 has an order with OrderID 10432
Customer Index: 75 has an order with OrderID 10756
Customer Index: 75 has an order with OrderID 10821
Customer Index: 75 has an order with OrderID 10974
Customer Index: 76 has an order with OrderID 10252
Customer Index: 76 has an order with OrderID 10302
Customer Index: 76 has an order with OrderID 10458
Customer Index: 76 has an order with OrderID 10463
Customer Index: 76 has an order with OrderID 10475
Customer Index: 76 has an order with OrderID 10767
Customer Index: 76 has an order with OrderID 10841
Customer Index: 76 has an order with OrderID 10846
Customer Index: 76 has an order with OrderID 10885
Customer Index: 76 has an order with OrderID 10930
Customer Index: 76 has an order with OrderID 11035
Customer Index: 76 has an order with OrderID 11038
Customer Index: 77 has an order with OrderID 10310
Customer Index: 77 has an order with OrderID 10708
Customer Index: 77 has an order with OrderID 10805
Customer Index: 77 has an order with OrderID 10992
Customer Index: 78 has an order with OrderID 10624
Customer Index: 78 has an order with OrderID 10775
Customer Index: 78 has an order with OrderID 11003
Customer Index: 79 has an order with OrderID 10438
Customer Index: 79 has an order with OrderID 10446
Customer Index: 79 has an order with OrderID 10548
Customer Index: 79 has an order with OrderID 10608
Customer Index: 79 has an order with OrderID 10967
Customer Index: 80 has an order with OrderID 10276
Customer Index: 80 has an order with OrderID 10293
Customer Index: 80 has an order with OrderID 10304
Customer Index: 80 has an order with OrderID 10319
Customer Index: 80 has an order with OrderID 10518
Customer Index: 80 has an order with OrderID 10576
Customer Index: 80 has an order with OrderID 10676
Customer Index: 80 has an order with OrderID 10842
Customer Index: 80 has an order with OrderID 10915
Customer Index: 80 has an order with OrderID 11069
Customer Index: 81 has an order with OrderID 10249
Customer Index: 81 has an order with OrderID 10292
Customer Index: 81 has an order with OrderID 10496
Customer Index: 81 has an order with OrderID 10606
Customer Index: 81 has an order with OrderID 10830
Customer Index: 81 has an order with OrderID 10834
Customer Index: 81 has an order with OrderID 10839
Customer Index: 82 has an order with OrderID 10574
Customer Index: 82 has an order with OrderID 10577
Customer Index: 82 has an order with OrderID 10822
Customer Index: 83 has an order with OrderID 10367
Customer Index: 83 has an order with OrderID 10399
Customer Index: 83 has an order with OrderID 10465
Customer Index: 83 has an order with OrderID 10591
Customer Index: 83 has an order with OrderID 10602
Customer Index: 83 has an order with OrderID 10688
Customer Index: 83 has an order with OrderID 10744
Customer Index: 83 has an order with OrderID 10769
Customer Index: 83 has an order with OrderID 10921
Customer Index: 83 has an order with OrderID 10946
Customer Index: 83 has an order with OrderID 10994
Customer Index: 84 has an order with OrderID 10251
Customer Index: 84 has an order with OrderID 10334
Customer Index: 84 has an order with OrderID 10450
Customer Index: 84 has an order with OrderID 10459
Customer Index: 84 has an order with OrderID 10478
Customer Index: 84 has an order with OrderID 10546
Customer Index: 84 has an order with OrderID 10806
Customer Index: 84 has an order with OrderID 10814
Customer Index: 84 has an order with OrderID 10843
Customer Index: 84 has an order with OrderID 10850
Customer Index: 85 has an order with OrderID 10274
Customer Index: 85 has an order with OrderID 10295
Customer Index: 85 has an order with OrderID 10737
Customer Index: 85 has an order with OrderID 10739
Customer Index: 86 has an order with OrderID 10301
Customer Index: 86 has an order with OrderID 10312
Customer Index: 86 has an order with OrderID 10348
Customer Index: 86 has an order with OrderID 10356
Customer Index: 86 has an order with OrderID 10513
Customer Index: 86 has an order with OrderID 10632
Customer Index: 86 has an order with OrderID 10640
Customer Index: 86 has an order with OrderID 10651
Customer Index: 86 has an order with OrderID 10668
Customer Index: 86 has an order with OrderID 11046
Customer Index: 87 has an order with OrderID 10266
Customer Index: 87 has an order with OrderID 10270
Customer Index: 87 has an order with OrderID 10320
Customer Index: 87 has an order with OrderID 10333
Customer Index: 87 has an order with OrderID 10412
Customer Index: 87 has an order with OrderID 10416
Customer Index: 87 has an order with OrderID 10437
Customer Index: 87 has an order with OrderID 10455
Customer Index: 87 has an order with OrderID 10526
Customer Index: 87 has an order with OrderID 10553
Customer Index: 87 has an order with OrderID 10583
Customer Index: 87 has an order with OrderID 10636
Customer Index: 87 has an order with OrderID 10750
Customer Index: 87 has an order with OrderID 10781
Customer Index: 87 has an order with OrderID 11025
Customer Index: 88 has an order with OrderID 10256
Customer Index: 88 has an order with OrderID 10420
Customer Index: 88 has an order with OrderID 10585
Customer Index: 88 has an order with OrderID 10644
Customer Index: 88 has an order with OrderID 10803
Customer Index: 88 has an order with OrderID 10809
Customer Index: 88 has an order with OrderID 10900
Customer Index: 88 has an order with OrderID 10905
Customer Index: 88 has an order with OrderID 10935
Customer Index: 89 has an order with OrderID 10269
Customer Index: 89 has an order with OrderID 10344
Customer Index: 89 has an order with OrderID 10469
Customer Index: 89 has an order with OrderID 10483
Customer Index: 89 has an order with OrderID 10504
Customer Index: 89 has an order with OrderID 10596
Customer Index: 89 has an order with OrderID 10693
Customer Index: 89 has an order with OrderID 10696
Customer Index: 89 has an order with OrderID 10723
Customer Index: 89 has an order with OrderID 10740
Customer Index: 89 has an order with OrderID 10861
Customer Index: 89 has an order with OrderID 10904
Customer Index: 89 has an order with OrderID 11032
Customer Index: 89 has an order with OrderID 11066
Customer Index: 90 has an order with OrderID 10248
Customer Index: 90 has an order with OrderID 10615
Customer Index: 90 has an order with OrderID 10673
Customer Index: 90 has an order with OrderID 10695
Customer Index: 90 has an order with OrderID 10873
Customer Index: 90 has an order with OrderID 10879
Customer Index: 90 has an order with OrderID 10910
Customer Index: 90 has an order with OrderID 11005
Customer Index: 91 has an order with OrderID 10374
Customer Index: 91 has an order with OrderID 10611
Customer Index: 91 has an order with OrderID 10792
Customer Index: 91 has an order with OrderID 10870
Customer Index: 91 has an order with OrderID 10906
Customer Index: 91 has an order with OrderID 10998
Customer Index: 91 has an order with OrderID 11044