c# - 获取 Linq To 对象查询的字符串表示形式

标签 c# linq debugging expression-trees

在 Web 应用程序中,我使用 linq To Object 查询来进行数据提取/合并。 为了更容易调试,我想在生成的 HTML 中直接显示 linq 查询结构;像

Bananas
  ->Where color='blue'
  ->Where size>'20cm'
  ->Take 25

确实是表达式树的表示。

这可能吗?怎么办?

最佳答案

您可以这样做,但是您必须编写自己的表达式树访问器(一个派生自 ExpressionVisitor 的类)。也就是说,您必须编写遍历作为 LINQ 查询的表达式树并构建所需字符串的代码。

有关表达式树访问者的更多信息,请参阅 http://msdn.microsoft.com/en-us/library/bb882521(v=vs.90).aspx .

Web 上实际上有一个非常有趣的示例已经完成了大部分工作:http://pelebyte.net/blog/2011/05/13/doing-simple-things-with-expressionvisitor/

关于c# - 获取 Linq To 对象查询的字符串表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20612864/

相关文章:

c# - TPL Parallel.ForEach 中的每线程实例对象

C# Tip 计算器,方法未调用,无错误消息

C# WPF 窗口 : Wrong Width and ActualWidth values

c# - LINQ 多重排序依据

c# - EF Linq 通过 ICollection 对象进行分组

javascript - 追踪从哪里发出警报?

在 Erlang 中调试符号

c# - Resharper 重构模式将局部变量赋值包装在 try catch 中

python - 从使用命令行选项解析的 python 脚本启动 ipython shell

c# - 如何在linq中将树展平到表中