处理奇数时的模数用法

时间:2013-08-17 17:55:22

标签: c# modulus dynamic-columns

我有一个大约50到60个项目的列表,我希望能够动态划分为多个列。我正在使用嵌套的for循环,当有偶数数量的项目时,列表会正确划分。但是,当有一个奇数个项目时,余数(模数)项目会被遗漏。我已经玩了一段时间并且还没有击中黄金。我希望比我更聪明的人可以&会有所帮助。

感谢。

    for (int fillRow = 0; fillRow < numOfCols; fillRow++)
    {
            for (int fillCell = 0; fillCell < (siteTitles.Count / numOfCols); fillCell++)
            {
                linkAddress = new HyperLink();
                linkAddress.Text = tempSites[fillCell].ToString();
                linkAddress.NavigateUrl = tempUrls[fillCell].ToString();

                mainTbl.Rows[fillCell].Cells[fillRow].Controls.Add(linkAddress);
            }

      }

1 个答案:

答案 0 :(得分:1)

是的,问题在于:

fillCell < (siteTitles.Count / numOfCols)

该分组将向下舍入,例如,如果有13个标题且numOfCols为5,则它将给出2 - 这意味着将不使用项目10-12。

我建议您实际上循环遍历所有项目,并计算每个项目的行和列:

for (int i = 0; i < siteTitles.Count; i++)
{
    int row = i / numOfCols;
    int col = i % numOfCols;
    // Fill in things using row, col and i
}

(当你在循环条件中使用siteTitles而在循环体中使用tempSites并且在使用fillRow时你并没有完全清楚你正在做什么提取数据...基本上我认为你还有一些错误......)