foreach (DataRow row in myDataTable.Select())

foreach (DataRow row in myDataTable.AsEnumerable())

foreach (DataRow row in myDataTable.Rows)

有什么区别吗?

最佳答案

Rows的类型不是很严格-因此每次迭代都会进行强制类型转换,并且您不能使用LINQ轻松地对其进行对象化。 (我相信AsEnumerable()也必须在内部对每次迭代进行转换,但是至少您可以轻松地将其用于其他LINQ方法。)
Select需要构建一个数组,因此那里显然会降低性能。

就我个人而言,除非您想在循环中修改表,否则我将使用AsEnumerable(),在这种情况下,Select会预先构建一个数组实际上可能是一个优势。

关于C#:遍历数据表:Rows,Select()或AsEnumerable(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3653993/

10-11 02:19
查看更多