Linq C中datatable.Rows.Cast <DataRow>和datatable.AsEnumerable()之间的区别#

Nit*_*ote 5 c# linq

我正在研究与数据相关的数据表相关操作,在数据表上使用linq的最有效方法是什么 -

var list = dataSet.Tables[0]
  .AsEnumerable()
  .Where(p => p.Field<String>("EmployeeName") == "Jams");
Run Code Online (Sandbox Code Playgroud)

要么

var listobj =  (EnumerableRowCollection<DataRow>) dataSet.Tables[0].Rows
  .Cast<DataRow>()
  .Where(dr => dr["EmployeeName"].ToString() == "Jams");
Run Code Online (Sandbox Code Playgroud)

Ant*_*lev 0

定义“高效”。

从性能的角度来看,我怀疑这两个选项之间是否存在任何显着差异:总体运行时间将由网络 I/O 所需的时间主导,而不是进行转换所需的时间。

从纯代码风格的角度来看,第二个对我来说看起来太不优雅了。如果您可以摆脱全 LINQ 解决方案,请使用它,因为它通常(至少在我看来)由于声明性而更具可读性。