Подтвердить что ты не робот

Как получить номер строки из datatable?

Я прокручиваю каждую строку в datatable:

foreach (DataRow row in dt.Rows) {}

Я хотел бы получить индекс текущей строки в dt datatable. например:

int index = dt.Rows[current row number]

Как мне это сделать?

4b9b3361

Ответ 1

int index = dt.Rows.IndexOf(row);

Но вам, вероятно, лучше использовать цикл for вместо foreach.

Ответ 2

Если вам нужен индекс элемента, с которым вы работаете, тогда использование цикла foreach - это неправильный метод итерации по коллекции. Измените способ цикла, чтобы у вас был индекс:

for(int i = 0; i < dt.Rows.Count; i++)
{
    // your index is in i
    var row = dt.Rows[i];
}

Ответ 3

Здесь у вас есть два варианта.

  • Вы можете создать свой собственный индексный счетчик и увеличить его
  • Вместо использования цикла foreach вы можете использовать цикл for

Отдельная строка просто представляет данные, поэтому не знает, в какой строке она находится.

Ответ 4

Почему бы вам не попробовать этот

for(int i=0; i < dt.Rows.Count; i++)
{
  // u can use here the i
}

Ответ 5

Вы знаете, что DataRow является строкой DataTable правильно?

То, что вы в настоящее время уже просматриваете в каждой строке. Вам просто нужно следить за количеством строк, чтобы получить текущую строку.

int i = 0;
int index = 0;
foreach (DataRow row in dt.Rows) 
{
index = i;
// do stuff
i++;
} 

Ответ 6

ArrayList check = new ArrayList();            

for (int i = 0; i < oDS.Tables[0].Rows.Count; i++)
{
    int iValue = Convert.ToInt32(oDS.Tables[0].Rows[i][3].ToString());
    check.Add(iValue);

}

Ответ 7

Try:

int i = Convert.ToInt32(dt.Rows.Count);

Я думаю, что это самый короткий, самый простой способ.