ArraySplit.psm1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<#
    ===========================================================================
     Created by: Rhys M
     Contact: RhysM.PS@gmail.com
     PS Gallery: https://www.powershellgallery.com/profiles/RhysM/
 
     Filename: ArraySplit.psm1
    -------------------------------------------------------------------------
     Module Name: ArraySplit
    ===========================================================================
#>


function ArraySplit{
            Param (
                [array][Parameter(Position = 0, Mandatory = $True)]
                $ArrayInput,
                [int][Parameter(Position = 1, Mandatory = $True)]
                $ArrayCount
            )

    $CharSplitArrays = New-Object System.Collections.ArrayList
    1..$ArrayCount | % { $CharSplitArrays.Add((New-Object System.Collections.ArrayList)) | Out-Null }
    $i = 0
    $ArrayInput | %{
         $CharSplitArrays[$i % $ArrayCount].Add($_) | Out-Null
         $i++
    }

    $Include0_Array = $ArrayCount - 1
    $SplitOutput = New-Object -TypeName PSObject
    foreach ($Number in 0..$Include0_Array){
        $MemberName = "Set_"+"$Number"

        $Char_Set = $CharSplitArrays[$Number]
        $SplitOutput | Add-Member -MemberType NoteProperty -Name $MemberName -Value $Char_Set
    }
    $DataOutput += $SplitOutput
    $DataOutput

    }

Export-ModuleMember -Function ArraySplit