首页 > 解决方案 > 对来自 for 循环 C# 的结果进行分组

问题描述

第一次在 Stackoverflow 上提问,祈祷!我是编程新手,我正在努力解决一个问题。我得到了这个循环:

            for (int i = 0; i < antal.Count(); i++)
        {
            tbxResultat.AppendText(namnLista.ElementAt(i) + " \t");
            tbxResultat.AppendText(personnummerLista.ElementAt(i).ToString() + " \t");
            tbxResultat.AppendText(distriktLista.ElementAt(i) + " \t");
            tbxResultat.AppendText(antal.ElementAt(i).ToString() + newLine);
        }

我想将循环中的结果分为 4 个部分:第一个值 0-49、第二个值 50-99、第三个值 100-199 和第四个 199。我有兴趣查看每个部分中有多少个并且每个部分都正确打印部分,例如:

23  
37
---------------------------------
Total count of 2 in first section.

我尝试将 for 循环放入 if 语句中,但没有成功。列表的排序是使用冒泡排序完成的,我将其修改为采用列表而不是数组。任何正确方向的提示都会非常受欢迎!/无人机

标签: c#

解决方案


此代码应该是您要求的。注意while里面的。这不是if因为可能有零元素的组,所以你也必须处理这些。

int groupLimit = 50;
int elementsInGroup = 0;
for (int i = 0; i < antal.Count(); i++, elementsInGroup++)
{
    while (antal[i] >= groupLimit)
    {
        // Write summary here. Use elementsInGroup..

        groupLimit += 50;
        elementsInGroup = 0;
    }

    // Write one row here. I suggest building the string and calling only one AppendText..
}

推荐阅读