foreach (DataRow row in myDataTable.Select())
foreach (DataRow row in myDataTable.AsEnumerable())
foreach (DataRow row in myDataTable.Rows)
有什么不同吗?
答案 0 :(得分:7)
Rows
不是强类型的 - 所以每次迭代都会有一个强制转换,你不能轻易地在它上面使用LINQ。 (我相信AsEnumerable()
也必须在内部对每个迭代进行强制转换,但至少可以轻松地将它用于其他LINQ方法。)
Select
需要构建一个数组,因此显然存在性能损失。
我个人使用AsEnumerable()
除非你想在循环中修改表,在这种情况下Select
预先构建一个数组的事实实际上可能是一个优势。
答案 1 :(得分:0)
如果您尝试使用LINQ查询数据表,请使用AsEnumerable(),否则,您也可以使用循环结构...