我有一个大约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);
}
}
答案 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
时你并没有完全清楚你正在做什么提取数据...基本上我认为你还有一些错误......)