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/