保留LINQPad结果以进行下一次查询

时间:2018-02-15 18:07:14

标签: c# linqpad

示例查询:

var booksFromPetr = Books.Where(x=> x.Author=="Petr Heteša");

让我们说这个查询需要很长时间才能完成执行,但是在它导致10本书之后......

现在我想使用这些书,但不想等待第一次查询再次 ......

我需要重新使用booksFromPeter变量...

我正在寻找像matlab工作区......

1 个答案:

答案 0 :(得分:2)

LINQPad并非真正用于交互式计算 - 您需要添加其他计算并重新运行整个查询。

但是,您可以做的一件事是使用

booksFromPetr.Dump("Books From Petr", true);

将结果输出到网格中,然后您可以将网格复制到电子表格中并另存为CSV或将其作为变量定义粘贴回LINQPad。

您也可以添加代码以将结果对象序列化到磁盘,然后在另一个查询中加载它们。

或者将它们保存在工作表中的数据库中。

我很同情,因为我有一个递归的磁盘漫步需要2.5小时才能运行,而且我第一次运行它时,我没有意识到转换为网格重新运行整个查询(如果你没有放{{ 1}}在最后,或类似的东西),所以当我使用网格菜单选项中的视图时,我不得不再等待2.5小时将网格复制到电子表格。

我还研究过一个使用超过270MB的CSV文件的模型,只需要花一分钟来计算行数,因此迭代查询以计算最终结果可能会非常痛苦。幸运的是,CSV驱动程序缓存数据,因此大部分时间我的迭代都更快。

如果有一种方法可以继续,就像它是一个计算器,但我认为很难设计和实现,那将是很好的。