我循环遍历数据表中的每一行:
foreach (DataRow row in dt.Rows) {}
我想获取dt datatable中当前行的索引。例如:
int index = dt.Rows[current row number]
我该怎么做?
答案 0 :(得分:82)
int index = dt.Rows.IndexOf(row);
但是你最好不要使用for循环而不是foreach。
答案 1 :(得分:28)
如果你需要你正在使用的项目的索引,那么使用foreach
循环是迭代集合的错误方法。更改循环方式,以便获得索引:
for(int i = 0; i < dt.Rows.Count; i++)
{
// your index is in i
var row = dt.Rows[i];
}
答案 2 :(得分:5)
你为什么不试试这个
for(int i=0; i < dt.Rows.Count; i++)
{
// u can use here the i
}
答案 3 :(得分:4)
这里有两个选择。
单个行只表示数据,因此它不知道它所在的行。
答案 4 :(得分:3)
你知道DataRow是DataTable正确的行吗?
您目前已经遍历每一行。您只需跟踪有多少行以获取当前行。
int i = 0;
int index = 0;
foreach (DataRow row in dt.Rows)
{
index = i;
// do stuff
i++;
}
答案 5 :(得分:1)
尝试:
PATH_MAX
我认为它是最短的,因此也是最简单的方式。
答案 6 :(得分:0)
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);
}