#c# #excel #loops #foreach
#c# #excel #циклы #foreach
Вопрос:
Я хочу выполнить итерацию по именам столбцов DataTable dt и сохранить их в точно таком же порядке в фиксированной строке на листе Excel. Все имена столбцов регистрируются (от первого до последнего). Однако в Excel фактически записывается только имя последнего столбца, и оно находится в ячейке, где должен быть первый столбец.
foreach(DataColumn column in dt.Columns) {
int j = 0;
j ;
columnName = column.ToStrin&();
worksheet.Cells[5, j] = columnName;
Lo&Messa&e(columnName);
}
Что не так с этим циклом?
Комментарии:
1.
int j = 0;
Переместите это в перед циклом.2.
j
всегда будет равно 1, поскольку вы устанавливаете его на0
каждую итерацию, а затем увеличиваете до1
Ответ №1:
Каждый раз при выполнении итерации вы устанавливаете значение j равным 0, а затем увеличиваете до 1. Это всегда будет 1
int j = 0; // move this outside the for loop
foreach(DataColumn column in dt.Columns) {
j ;
...
Комментарии:
1. О, теперь это кажется таким очевидным, спасибо, что указали на это!