You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决List<T[]>分组打印时最后行与下一分组元素混排的问题

问题分析
  • 原代码核心问题是跨组复用了计数变量count和临时列表li,导致上一组未填满的行被下一组元素填充,同时每个组遍历结束后,剩余不足10个的元素没有被打印。
  • 代码中未明确定义的rowCount,推测应为固定值10。
修正后的实现

每个T[]分组独立处理行打印逻辑,确保组内元素完全独立,不会与其他组混排:

foreach (T[] group in groups)
{
    // 每个组单独初始化临时列表,避免跨组污染
    List<T> currentLineItems = new List<T>();
    // 每个组单独维护行内元素计数,从0开始
    int itemCountInLine = 0;

    foreach (T item in group)
    {
        currentLineItems.Add(item);
        itemCountInLine++;

        // 一行满10个时打印并重置
        if (itemCountInLine == 10)
        {
            string line = string.Join("\t", currentLineItems);
            Console.WriteLine(line);
            currentLineItems.Clear();
            itemCountInLine = 0;
        }
    }

    // 打印当前组最后一行不足10个的剩余元素
    if (currentLineItems.Count > 0)
    {
        string line = string.Join("\t", currentLineItems);
        Console.WriteLine(line);
    }
}
关键改进点
  • 将临时列表和行内计数变量移至分组循环内部,每个组独立初始化,彻底隔离不同组的打印逻辑。
  • 新增组内剩余元素处理逻辑,确保不足10个的最后一行能被正常打印。
  • 用更简洁的foreach遍历组内元素,替代原有的do-while循环,提升代码可读性。

内容的提问来源于stack exchange,提问作者LittleSteps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:05:22