Вы хотите разделить список из 91 элемента на 3 или после 30 элементов. Вы не можете иметь оба. Если вы будете делать это после каждых 30 пунктов, у вас будет 91-ый элемент, отделенный от остальных, в отдельном «чанке», т.е. 1-30, 31-60, 61-90, 91. Если у вас есть 91 предмет и вы хотите разделить на 3, вы должны делать это каждые 31 предмет (следовательно, почему я использую Math.Ceiling
). Таким образом, вы получите 1-31, 32-62 и 63-91.
Кроме того, не используйте foreach
И счетчик;вместо этого используйте цикл for
. И вы можете использовать оператор модуля. Как так:
int third = Convert.ToInt32(Math.Ceiling(textList.Count / 3.0));
int divider = third - 1;
for (int i = 0; i < textList.Count; i++)
{
var itemToWrite = textList[i];
//write to file
if (i % third == divider) await sw.WriteLineAsync(Environment.NewLine);
}