当我想对数据表执行查询时,我通常会做类似的事情:
myDataTable.Select("myColumnName = 'filterValue');
在这里我可以检查是否给出任何结果,依此类推。但是,我也可以做类似的事情:
// Get the enumerable
IEnumerable<DataRow> myEnumerable = myDataTable.AsEnumerable();
// Setup the query
IEnumerable<DataRow> myQuery =
from row in myEnumerable
where row[myColumnNameIndex].ToString() == "filterValue"
select row;
然后从此单个查询中获得我想要的任何内容。
我觉得Select方法效率更高,因为它直接查询DataTable,而LINQ查询首先需要转换,设置查询,执行查询等。
还是我的直觉不正确? LINQ查询是否以提高效率的方式进行了优化?我很好奇,因为我正在编写一种可以使用任何一种情况的方法,并且我想使用更有效的技术。