Да, вы можете. Но вы можете поспорить, если это очень красиво ...
Int64[] aValues = new Int64[] { 1, 2, 3, 4, 5, 6 };
var result = aValues
.Select( ( x, y ) => new KeyValuePair<Int64, Int32>( x, y ) )
.GroupBy( x => x.Value / 2 )
.Select( x => x.Select( y => y.Key ).ToList() ).ToList();
Как это работает:
Выберите x и y из исходной коллекции, где x - фактическое значение, а y - индекс из этого в данной коллекции. Затем сгруппируйте по целочисленному отклонению индекса и желаемой длины группировки (в этом примере 2 ).
Группировка по целочисленному отклонению округляется до нижнего значения, поэтому 0/2 = 0 , 1/2 = 0 и т. Д., Что даст нам необходимое значение категории группировки , Это то, против чего мы здесь группируем.
Для результата выберите только значения, сгруппированные в списках, и верните их как набор списков.