【发布时间】:2021-11-06 09:23:59
【问题描述】:
一般文化问题:
在相对较小的记录集(例如 5000 条记录)中,迭代 Linq 对象或数据表会更加优化。
linq 示例:
var _rows_ref_carga = from _row in list_cargas
where ref_carga == "XXXXX"
select _row;
foreach (var _r in _rows_ref_carga) {
OTHER OPERATION
}
数据表示例:
foreach (DataRow _r in _datatable.Rows) {
OTHER OPERATION
}
我的问题是:迭代“_rows_ref_carga”比迭代“_datatable.Rows”效率更高???
谢谢。
【问题讨论】:
-
您进行过性能测试吗?
-
还没有,我正在完成一门 Linq 课程,但我对迭代一组寄存器的性能表示怀疑,以后我必须在这些寄存器上执行其他操作。我在征求具有 Linq 经验的程序员的意见。 (无论如何我会自己做性能测试)谢谢
-
比什么更优化? LINQ 可以在数据表上使用,因此不清楚您在此处讨论的 LINQ 部分是什么后端。 DataTable 很少是任何性能问题的答案。如果您正在谈论将数据在内存中保存一段合理的时间(不是每次操作都获取它),那么是的,这可能会有所帮助,但可能通过
List<T>? -
@MarcGravell:我目前正在处理一个使用 DataTables 的项目,并且执行的操作的性能很好(所有对数据的操作都是使用 DataTables 执行的)。 List
是我们正在引入的一个选项,但大多数代码都是遗留的,如果可以使用 Linq 改进它,我将推动它在任何新的相关开发中使用。谢谢 -
@raBinn 你误会我了; LINQ 是一种方法,而不是特定的东西。 “with LINQ”有十几种解释。 究竟你想在这里比较什么?更重要的是:您是否简单地测量了它们?
标签: c# performance winforms