public static void Main()
var origArray = new[] {1,2,3,4,5,6};
var segmentedArray1 = origArray
.Select((item, index) => new { item, index })
.Select(@group => @group.Select(x=>x.item));
var segmentedArray2 = Enumerable.Range(0, origArray.Count())
.Select(@group => @group.Select(index => origArray[index]));
Console.WriteLine("Segmented Array 1");
foreach(var array in segmentedArray1)
Console.WriteLine("[{0}]", string.Join(", ", array));
Console.WriteLine("Segmented Array 2");
foreach(var array in segmentedArray2)
Console.WriteLine("[{0}]", string.Join(", ", array));