Я хотел бы получить индекс текущей строки в dt datatable. например:
int index = dt.Rows[current row number]
Как мне это сделать?
Ответ 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);
Я думаю, что это самый короткий, самый простой способ.