Split a collection into n parts - VB

VbNet · Console

/Program.vb

Imports System
Imports System.Linq
Imports System.Collections.Generic
				
Public Module Module1
	Public Sub Main()
		Dim collection As IEnumerable(Of Integer) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

        Dim result4 As IEnumerable(Of IEnumerable(Of Integer)) = collection.Select(Function(v, i) New With {.Value = v, .Index = i}) _
                                                                          .GroupBy(Function(x) x.Index \ 4) _
                                                                          .Select(Function(x) x.Select(Function(z) z.Value))


        Dim result5 As IEnumerable(Of IEnumerable(Of Integer)) = collection.Select(Function(v, i) New With {.Value = v, .Index = i}) _
                                                                          .GroupBy(Function(x) x.Index \ 5) _
                                                                          .Select(Function(x) x.Select(Function(z) z.Value))

        Console.WriteLine("4 Parts")
        Console.WriteLine()

        For Each x In result4
            For Each item In x
                Console.WriteLine(item)
            Next
            Console.WriteLine("---------------")
        Next

        Console.WriteLine("5 Parts")
        Console.WriteLine()

        For Each x In result5
            For Each item In x
                Console.WriteLine(item)
            Next
            Console.WriteLine("---------------")
        Next
	End Sub
End Module
;