Wenn ich das folgende Codefragment ausführen:Hinzufügen von Zeilen in einer Schleife
IXLRange dataRange = worksheet.Range(1, 1, myData.Count, 4);
foreach (var row in dataRange.Rows()) {
//int cells = row.CellCount();
if (isEndOfGroup) {
row.InsertRowsBelow(1);
var rowBelow = row.RowBelow();
// Do stuff with the added row, like adding a subtotal
}
}
Was hier eigentlich passiert? Es scheint so, als ob die Zeilensammlung, die iteriert wird, aktualisiert wird, was ich möchte, weil die auskommentierte Zeile bei der nächsten Iteration eine Ausnahme mit dem Fehler "Bereich ist ungültig" auslöst, als ob die Zeile irgendwie nicht stimmt. t initialisiert worden.
Ich verstehe, eine Sammlung zu ändern, wie Sie es durchlaufen, ist eine schlechte Praxis, aber ich habe dies zuvor ohne irgendwelche Probleme getan.
Was wäre ein alternativer Weg, dies zu erreichen?
Was meinen Sie mit * "Nutzen Sie die for-Schleife" *? –
Die for-Schleife verwendet nicht den 'IEnumerable', der nicht während des Iterierens geändert werden kann (foreach-Schleife erhält den Enumerator durch 'Rows(). GetEnumerator()'. Stattdessen kann die for-Schleife verwendet werden, indem Sie Ihre Referenz von Zeile in Ihrer Liste nach Index. –
Bagerfahrer