2013-08-17 50 views
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); 
      } 

     } 

回答

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 ...基本上我認爲你仍然有一些bug ...)

+0

感謝Jon。我可以將它與上面的代碼合併,現在我可以動態地控制每列的​​列數和項目數。 =) – snapplex