C#:遍历数据表:行、选择()或可数()
有什么不同吗?行不是强类型的-因此每次迭代都会有一个强制转换,并且您不能轻松地使用LINQ对其上的对象进行转换。(我相信C#:遍历数据表:行、选择()或可数(),c#,linq,datatable,C#,Linq,Datatable,有什么不同吗?行不是强类型的-因此每次迭代都会有一个强制转换,并且您不能轻松地使用LINQ对其上的对象进行转换。(我相信AsEnumerable()也必须在内部对每个迭代进行强制转换,但至少您可以轻松地将其用于其他LINQ方法。) Select需要构建一个数组,因此显然存在性能损失 就个人而言,我会使用aseneumerable(),除非您想修改循环中的表,在这种情况下,Select预先构建数组实际上可能是一种优势。如果您试图使用LINQ查询数据表,请使用aseneumerable(),否则,您
AsEnumerable()
也必须在内部对每个迭代进行强制转换,但至少您可以轻松地将其用于其他LINQ方法。)
Select
需要构建一个数组,因此显然存在性能损失
就个人而言,我会使用aseneumerable()
,除非您想修改循环中的表,在这种情况下,Select
预先构建数组实际上可能是一种优势。如果您试图使用LINQ查询数据表,请使用aseneumerable(),否则,您最好使用循环结构
foreach (DataRow row in myDataTable.Select())
foreach (DataRow row in myDataTable.AsEnumerable())
foreach (DataRow row in myDataTable.Rows)