列表到LINQ中的列

Sam*_*ron 13 c# linq

鉴于IEnumerable<T>行数和行数,我想将其转换为IEnumerable<IEnumerable<T>>如此:

输入:

Row Count: 3

List: [1,2,3,4,5,6,7]

产量

 
[
 [1,4,7]
 [2,5]
 [3,6]
]

编辑 我希望这适用于任何IEnumerable而不依赖于T是一个Int32.

我怎么能用LINQ做到这一点?

Dav*_*d M 16

这样做:

var list = new List<object> { 1, "two", 3, 4, 5, 6 ,7 };
int count = 3;
var rows = list.Select((item, index) => new { Item = item, Index = index })
            .GroupBy(o => o.Index % count)
            .Select(g => g.Select(o => o.Item));
Run Code Online (Sandbox Code Playgroud)

它适用于任何Enumerable