如果我有一个包含少量或大量数据的DataTable
,要从数据表中选择数据,我可以使用Datatable.Select()
方法或转到LINQ。哪一个更快更有效?
答案 0 :(得分:7)
哪一个最适合您的情况?或者,更重要的是,您查询的数据量的速度差异是否值得选择一个而不是另一个?
在我看来,LINQ通常比任何其他形式的数据过滤更容易阅读,并且优于使用DataTable.Select
存在的优势,至少部分地,强类型使得更难犯错误
// Using DataTable.Select()
DataRow[] records = myTable.Select("(MyIntField > 30 AND MyStringField == 'StringValue') OR AnotherField > 70");
// Using LINQ
var records = from record in myTable.AsEnumerable()
where (record.Field<int>("MyIntField") > 30
&& Record.Field<string>("StringValue") == "StringValue")
||
(record.Field<int>("AnotherField") > 70)
select record;
LINQ查询更大,但我个人认为它更具可读性
答案 1 :(得分:0)
哪一个会最快?只有你可以说。
所有这些都会影响哪种解决方案最快。与往常一样,如果您没有性能问题,请不要进行优化。如果确实存在性能问题,请使用配置文件找出优化位置。
如果您没有确凿的证据表明选择是性能问题,请考虑可读性。在我看来,这转化为LINQ解决方案。
答案 2 :(得分:-4)
如果你想要更快的执行,那么Datatable.Select()或你可以去LINQ