.NET迭代数据表中行的最快方法?

Mat*_*ino 0 .net iteration datatable performance ado.net

从DataTable读取/比较行信息时,这通常最快?

'assume dt as datatable'

'method 1'
dim i as int32
for i = 0 to dt.rows.count - 1
   ....
next

'method 2'
dim row as datarow
for each row in dt.rows
    ....
next
Run Code Online (Sandbox Code Playgroud)

如果存在差异,在什么情况下使用一个而不是另一个?

在此先感谢任何指导!

Mat*_*ley 7

编译器将For Each扩展为短时循环.

for each row in dt.rows
// expands to:
IEnumerator e = dt.rows.GetEnumerator()
while e.MoveNext()
    row = e.Current
Run Code Online (Sandbox Code Playgroud)

所以你需要支付少量的开销.但是为了清楚起见,如果你只是在一行上工作,我仍然会坚持For Each,而你并没有修改数据集.