Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:遍历数据表:行、选择()或可数()_C#_Linq_Datatable - Fatal编程技术网

C#:遍历数据表:行、选择()或可数()

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

有什么不同吗?

行不是强类型的-因此每次迭代都会有一个强制转换,并且您不能轻松地使用LINQ对其上的对象进行转换。(我相信
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)