Skip to main content

Take - Simple

This sample uses Take to get only the first 3 elements of the source DataTable.

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

    Dim first3Numbers = From n In numbers Take 3

    Console.WriteLine("First 3 numbers:")
    For Each n In first3Numbers
        Console.WriteLine(n!number)
    Next
End Sub


Result:
First 3 numbers:
5
4
1


Take - Nested

This sample uses Take to get the first 3 orders from customers in Finland.

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

    Dim first3FinlandOrders = From c In customers, o In c.GetChildRows("CustomersOrders") _
        Where c("Country") = "Finland" _
        Select c!CustomerID, o!OrderID, o!OrderDate Take 3

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


Result:
First 3 orders in Finland:
CustomerID: WARTH, OrderID: 10266, OrderDate: 7/26/1996 12:00:00 AM
CustomerID: WARTH, OrderID: 10270, OrderDate: 8/1/1996 12:00:00 AM
CustomerID: WARTH, OrderID: 10320, OrderDate: 10/3/1996 12:00:00 AM


Skip - Simple

This sample uses Skip to get all but the first 4 rows of the source DataTable.

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

    Dim allButFirst4Numbers = From n In numbers Skip 4

    Console.WriteLine("All but first 4 numbers:")
    For Each n In allButFirst4Numbers
        Console.WriteLine(n("number"))
    Next
End Sub


Result:
All but first 4 numbers:
9
8
6
7
2
0


Skip - Nested

This sample uses Take to get all but the first 2 orders from customers in the USA.

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

    Dim usaOrders = From c In customers, o In c.GetChildRows("CustomersOrders") _
        Where c("Country") = "USA" _
        Select c!CustomerID, o!OrderID, o!OrderDate

    Dim allButFirst2Orders = usaOrders.Skip(2)

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


Result:
All but first 2 orders in USA:
CustomerID: GREAL, OrderID: 10616, OrderDate: 7/31/1997 12:00:00 AM
CustomerID: GREAL, OrderID: 10617, OrderDate: 7/31/1997 12:00:00 AM
CustomerID: GREAL, OrderID: 10656, OrderDate: 9/4/1997 12:00:00 AM
CustomerID: GREAL, OrderID: 10681, OrderDate: 9/25/1997 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: HUNGC, OrderID: 10375, OrderDate: 12/6/1996 12:00:00 AM
CustomerID: HUNGC, OrderID: 10394, OrderDate: 12/25/1996 12:00:00 AM
CustomerID: HUNGC, OrderID: 10415, OrderDate: 1/15/1997 12:00:00 AM
CustomerID: HUNGC, OrderID: 10600, OrderDate: 7/16/1997 12:00:00 AM
CustomerID: HUNGC, OrderID: 10660, OrderDate: 9/8/1997 12:00:00 AM
CustomerID: LAZYK, OrderID: 10482, OrderDate: 3/21/1997 12:00:00 AM
CustomerID: LAZYK, OrderID: 10545, OrderDate: 5/22/1997 12:00:00 AM
CustomerID: LETSS, OrderID: 10579, OrderDate: 6/25/1997 12:00:00 AM
CustomerID: LETSS, OrderID: 10719, OrderDate: 10/27/1997 12:00:00 AM
CustomerID: LETSS, OrderID: 10735, OrderDate: 11/10/1997 12:00:00 AM
CustomerID: LETSS, OrderID: 10884, OrderDate: 2/12/1998 12:00:00 AM
CustomerID: LONEP, OrderID: 10307, OrderDate: 9/17/1996 12:00:00 AM
CustomerID: LONEP, OrderID: 10317, OrderDate: 9/30/1996 12:00:00 AM
CustomerID: LONEP, OrderID: 10544, OrderDate: 5/21/1997 12:00:00 AM
CustomerID: LONEP, OrderID: 10662, OrderDate: 9/9/1997 12:00:00 AM
CustomerID: LONEP, OrderID: 10665, OrderDate: 9/11/1997 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: OLDWO, OrderID: 10260, OrderDate: 7/19/1996 12:00:00 AM
CustomerID: OLDWO, OrderID: 10305, OrderDate: 9/13/1996 12:00:00 AM
CustomerID: OLDWO, OrderID: 10338, OrderDate: 10/25/1996 12:00:00 AM
CustomerID: OLDWO, OrderID: 10441, OrderDate: 2/10/1997 12:00:00 AM
CustomerID: OLDWO, OrderID: 10594, OrderDate: 7/9/1997 12:00:00 AM
CustomerID: OLDWO, OrderID: 10680, OrderDate: 9/24/1997 12:00:00 AM
CustomerID: OLDWO, OrderID: 10706, OrderDate: 10/16/1997 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: RATTC, OrderID: 10262, OrderDate: 7/22/1996 12:00:00 AM
CustomerID: RATTC, OrderID: 10272, OrderDate: 8/2/1996 12:00:00 AM
CustomerID: RATTC, OrderID: 10294, OrderDate: 8/30/1996 12:00:00 AM
CustomerID: RATTC, OrderID: 10314, OrderDate: 9/25/1996 12:00:00 AM
CustomerID: RATTC, OrderID: 10316, OrderDate: 9/27/1996 12:00:00 AM
CustomerID: RATTC, OrderID: 10346, OrderDate: 11/5/1996 12:00:00 AM
CustomerID: RATTC, OrderID: 10401, OrderDate: 1/1/1997 12:00:00 AM
CustomerID: RATTC, OrderID: 10479, OrderDate: 3/19/1997 12:00:00 AM
CustomerID: RATTC, OrderID: 10564, OrderDate: 6/10/1997 12:00:00 AM
CustomerID: RATTC, OrderID: 10569, OrderDate: 6/16/1997 12:00:00 AM
CustomerID: RATTC, OrderID: 10598, OrderDate: 7/14/1997 12:00:00 AM
CustomerID: RATTC, OrderID: 10761, OrderDate: 12/2/1997 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: SAVEA, OrderID: 10324, OrderDate: 10/8/1996 12:00:00 AM
CustomerID: SAVEA, OrderID: 10393, OrderDate: 12/25/1996 12:00:00 AM
CustomerID: SAVEA, OrderID: 10398, OrderDate: 12/30/1996 12:00:00 AM
CustomerID: SAVEA, OrderID: 10440, OrderDate: 2/10/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10452, OrderDate: 2/20/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10510, OrderDate: 4/18/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10555, OrderDate: 6/2/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10603, OrderDate: 7/18/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10607, OrderDate: 7/22/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10612, OrderDate: 7/28/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10627, OrderDate: 8/11/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10657, OrderDate: 9/4/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10678, OrderDate: 9/23/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10700, OrderDate: 10/10/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10711, OrderDate: 10/21/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10713, OrderDate: 10/22/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10714, OrderDate: 10/22/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10722, OrderDate: 10/29/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10748, OrderDate: 11/20/1997 12:00:00 AM
CustomerID: SAVEA, OrderID: 10757, OrderDate: 11/27/1997 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: SPLIR, OrderID: 10271, OrderDate: 8/1/1996 12:00:00 AM
CustomerID: SPLIR, OrderID: 10329, OrderDate: 10/15/1996 12:00:00 AM
CustomerID: SPLIR, OrderID: 10349, OrderDate: 11/8/1996 12:00:00 AM
CustomerID: SPLIR, OrderID: 10369, OrderDate: 12/2/1996 12:00:00 AM
CustomerID: SPLIR, OrderID: 10385, OrderDate: 12/17/1996 12:00:00 AM
CustomerID: SPLIR, OrderID: 10432, OrderDate: 1/31/1997 12:00:00 AM
CustomerID: SPLIR, OrderID: 10756, OrderDate: 11/27/1997 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: THEBI, OrderID: 10310, OrderDate: 9/20/1996 12:00:00 AM
CustomerID: THEBI, OrderID: 10708, OrderDate: 10/17/1997 12:00:00 AM
CustomerID: THEBI, OrderID: 10805, OrderDate: 12/30/1997 12:00:00 AM
CustomerID: THEBI, OrderID: 10992, OrderDate: 4/1/1998 12:00:00 AM
CustomerID: THECR, OrderID: 10624, OrderDate: 8/7/1997 12:00:00 AM
CustomerID: THECR, OrderID: 10775, OrderDate: 12/12/1997 12:00:00 AM
CustomerID: THECR, OrderID: 11003, OrderDate: 4/6/1998 12:00:00 AM
CustomerID: TRAIH, OrderID: 10574, OrderDate: 6/19/1997 12:00:00 AM
CustomerID: TRAIH, OrderID: 10577, OrderDate: 6/23/1997 12:00:00 AM
CustomerID: TRAIH, OrderID: 10822, OrderDate: 1/8/1998 12:00:00 AM
CustomerID: WHITC, OrderID: 10269, OrderDate: 7/31/1996 12:00:00 AM
CustomerID: WHITC, OrderID: 10344, OrderDate: 11/1/1996 12:00:00 AM
CustomerID: WHITC, OrderID: 10469, OrderDate: 3/10/1997 12:00:00 AM
CustomerID: WHITC, OrderID: 10483, OrderDate: 3/24/1997 12:00:00 AM
CustomerID: WHITC, OrderID: 10504, OrderDate: 4/11/1997 12:00:00 AM
CustomerID: WHITC, OrderID: 10596, OrderDate: 7/11/1997 12:00:00 AM
CustomerID: WHITC, OrderID: 10693, OrderDate: 10/6/1997 12:00:00 AM
CustomerID: WHITC, OrderID: 10696, OrderDate: 10/8/1997 12:00:00 AM
CustomerID: WHITC, OrderID: 10723, OrderDate: 10/30/1997 12:00:00 AM
CustomerID: WHITC, OrderID: 10740, OrderDate: 11/13/1997 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


TakeWhile - Simple

This sample uses TakeWhile to return rows starting from the beginning of the DataTable until a number is hit that is not less than 6.

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

    Dim firstNumbersLessThan6 = From n In numbers Take While n("number") < 6

    Console.WriteLine("First numbers less than 6:")
    For Each n In firstNumbersLessThan6
        Console.WriteLine(n("number"))
    Next
End Sub


Result:
First numbers less than 6:
5
4
1
3


TakeWhile - Indexed

This sample uses TakeWhile to return elements starting from the beginning of the array until a number is hit that is less than its position in the array.

Public Sub DataSetLinq25()

    Dim numbers = TestDS.Tables("Numbers").AsEnumerable()

    Dim firstSmallNumbers = numbers.TakeWhile(Function(n, index) n("number") >= index)

    Console.WriteLine("First numbers not less than their position:")
    For Each n In firstSmallNumbers
        Console.WriteLine(n("number"))
    Next
End Sub


Result:First numbers not less than their position: 5 4


SkipWhile - Simple

This sample uses SkipWhile to get the elements of the array starting from the first element divisible by 3.

Public Sub DataSetLinq26()

    Dim numbers = TestDS.Tables("Numbers").AsEnumerable()

    Dim allButFirst3Numbers = numbers.SkipWhile(Function(n) n("number") Mod 3 <> 0)

    Console.WriteLine("All elements starting from first element divisible by 3:")
    For Each n In allButFirst3Numbers
        Console.WriteLine(n("number"))
    Next
End Sub


Result:
All elements starting from first element divisible by 3:
3
9
8
6
7
2
0


SkipWhile - Indexed

This sample uses SkipWhile to get the elements of the array starting from the first element less than its position.

Public Sub DataSetLinq27()

    Dim numbers = TestDS.Tables("Numbers").AsEnumerable()

    Dim laterNumbers = numbers.SkipWhile(Function(n, index) n("number") >= index)

    Console.WriteLine("All elements starting from first element less than its position:")
    For Each n In laterNumbers
        Console.WriteLine(n("number"))
    Next
End Sub


Result:
All elements starting from first element less than its position:
1
3
9
8
6
7
2
0