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

JOE*_*EET 44 c# datatable

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

foreach (DataRow row in dt.Rows) {}
Run Code Online (Sandbox Code Playgroud)

我想得到dt datatable中当前行的索引.例如:

int index = dt.Rows[current row number]
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

Jam*_*Ide 89

int index = dt.Rows.IndexOf(row);
Run Code Online (Sandbox Code Playgroud)

但你可能最好使用for循环而不是foreach.

  • 此代码将强制搜索DataTable中每行的内部红黑树,而简单的for循环不需要任何开销(因为您预先有索引). (5认同)
  • 使用for循环当然是一个更好的选择,但这不是问题. (4认同)

Jus*_*ner 29

如果你需要你正在使用的项目的索引,那么使用foreach循环是迭代集合的错误方法.更改循环方式,以便获得索引:

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


nam*_*mco 5

你为什么不试试呢?

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