src/Utilities/Split-XrmCollection.ps1
<# .SYNOPSIS Split given collection into specified sized collections. .Description Extract chunk collections from given one. .PARAMETER Collection Input array to split. .PARAMETER Count Target collections size. #> function Split-XrmCollection { [CmdletBinding()] param( [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] $Collection, [Parameter(Mandatory = $true)] [int] $Count ) begin { $Index = 0 $Array = @() $TempArray = @() } process { if(-not $Collection){ return @(); } if($Collection.Count -lt $Count){ return $Collection; } foreach ($item in $Collection) { if (++$Index -eq $Count) { $Index = 0; $Array += , @($TempArray + $item); $TempArray = @(); continue; } $TempArray += $item; } } end { if ($TempArray) { $Array += , $TempArray; } $Array; } } Export-ModuleMember -Function Split-XrmCollection -Alias *; |