我一直在盯着我在另一个问题中找到的这段代码(下面逐字复制),我知道它并不多,但它让我无法理解 i++ % 部分是如何工作的。
void Main()
{
int[] a = new [] { 10, 3, 5, 22, 223 };
a.Split(3).Dump();
}
static class LinqExtensions
{
public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts)
{
int i = 0;
var splits = from item in list
group item by i++ % parts into part
select part.AsEnumerable();
return splits;
}
}