У меня есть список вроде:
1.-10
2.-11
3.-12
4.-13
5.-14
6.-15
7.-16
8.-17
9.-18
10.-19
11.-20
Я хочу разделить список на n
куски, например n=4
приведет к 3 lists
:
первый список
1.-10
2.-11
3.-12
4.-13
второй список
1.-13
2.-14
3.-15
4.-16
третий список
1.-16
2.-17
3.-18
4.-19
Поскольку это неполный список, он отбрасывается
1.-19
2.-20
I я делаю
public static void Main()
{
var list = new List<double>()
{
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
};
var subLists = SplitList(list, 3);
}
public static List<List<T>> SplitList<T>(IList<T> source, int chunkSize)
{
var chunks = new List<List<T>>();
List<T> chunk = null;
var total = source.Count;
var discarded = total % chunkSize;
for (var i = 0; i < total - discarded; i++)
{
if (i % chunkSize == 0)
{
chunk = new List<T>(chunkSize);
chunks.Add(chunk);
}
chunk?.Add(source[i]);
}
return chunks;
}
но получаю:
1.-10
2.-11
3.-12
4.-13
1.-14
2.-15
3.-16
4.-17