[英]C#: Iterating through a data table: Rows, Select() or AsEnumerable()
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
预先构建一个数组的事实实际上可能是一个优势。
如果您尝试使用LINQ查询数据表,请使用AsEnumerable(),否则,您也可以使用循环结构...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.