如何从数据表中获取行号?

时间:2010-12-21 19:01:34

标签: c# datatable

我循环遍历数据表中的每一行:

foreach (DataRow row in dt.Rows) {}

我想获取dt datatable中当前行的索引。例如:

int index = dt.Rows[current row number]

我该怎么做?

7 个答案:

答案 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)

这里有两个选择。

  1. 您可以创建自己的索引计数器并将其递增
  2. 您可以使用for循环
  3. ,而不是使用foreach循环

    单个行只表示数据,因此它不知道它所在的行。

答案 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);

}