1

我有一个大约 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);
            }

      }
4

1 回答 1

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......基本上我认为你仍然有一些错误...... .)

于 2013-08-17T17:58:25.273 回答