所以我在這裏有3個foreach。 我跳出其中一個去到另一個,但是,當一個reloop發生第二個和第三個foreach總是獲得相同的值,一次又一次,列表的第一個值。 任何解決方案?我想,它需要在列表的第二循環的第二值,名單上的第三環這是第3值,等.... 截圖:https://www.dropbox.com/s/4hafd53q9u4e2tz/Naamloos.png嵌套foreach每次獲得相同的值
foreach (LineUp ssc in list)
{
Row r = new Row() { RowIndex = rownumber };
Cell c1 = new Cell() { CellReference = "A" + rownumber, DataType = CellValues.String, CellValue = new CellValue(ssc.Date) };
Cell c2 = new Cell() { CellReference = "B" + rownumber, DataType = CellValues.String, CellValue = new CellValue(ssc.From) };
Cell c3 = new Cell() { CellReference = "C" + rownumber, DataType = CellValues.String, CellValue = new CellValue(ssc.Until) };
r.Append(c1, c2, c3);
data.Append(r);
foreach (Stage ssc2 in stages)
{
Row r2 = new Row() { RowIndex = rownumber };
Cell c4 = new Cell() { CellReference = "D" + rownumber, DataType = CellValues.Number, CellValue = new CellValue(ssc2.Name) };
r2.Append(c4);
data.Append(r2);
}
foreach (Band ssc3 in bands)
{
Row r3 = new Row() { RowIndex = rownumber };
Cell c5 = new Cell() { CellReference = "E" + rownumber, DataType = CellValues.Number, CellValue = new CellValue(ssc3.Name) };
r3.Append(c5);
data.Append(r3);
break;
}
break;
}
rownumber++;
「舞臺」和「樂隊」在哪裏更新? –
你可以拿出所有多餘的代碼,做一個簡單的例子,你在每個'list','stage'和'bands'中只有三個元素(比如1,2,3),並顯示你想要的輸出到是?我對你的描述感到困惑。這聽起來像你**不要** 111 112 113 121 122 123 131 132 133 211 212 213 ... ??但這就是傳統的嵌套循環所能做到的。也許你需要一個循環,然後訪問每個的第n個元素? – Floris
'foreach'總是從容器的開始處開始。如果你不想從頭開始,建立一個明確的迭代器對象,它將保留跨越邊界的位置。 – dasblinkenlight