c# - 如何在运行时从文本构建 LINQ 查询?

标签 c# linq

我有一个

class A {
   public int X;
   public double Y;
   public string Z;
   // and more fields/properties ...
};

和一个List<A> data并且可以构建一个 linq 查询,例如

var q = from a in data where a.X > 20 select new {a.Y, a.Z};

然后 dataGridView1.DataSource = q.ToList();在我的 DataGridView 中显示选择。

现在的问题是,是否可以根据用户在运行时输入的文本构建查询?喜欢

var q = QueryFromText("from a in data where a.X > 20 select new {a.Y, a.Z}");

关键是,用户(具有编程技能)可以动态自由地选择显示的数据。

最佳答案

Dynamic Linq宝贝!

重新评论。

是的,使用 Dynamic Linq 可能无法实现所写的示例,但是如果您分解出常量,例如'from a in data' 你剩下一个 'where' 和一个 'select' 可以用动态 linq 来表达。

所以两个文本框,如果包含 orderby,可能是三个,可能会满足您的要求。

只是一个想法。

Jon 有一个有趣的方法,但我对编译和执行不受限制的代码持怀疑态度。

关于c# - 如何在运行时从文本构建 LINQ 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2661576/

相关文章:

c# - ASP.NET 如何使用带有 '<%= 的计数器

c# - 当每个项目都包含对其父项的引用时,从项目列表创建树

c# - 比较 Linq 中的日期逻辑

c# - 最后用空值排序

java - Aspose LINQ 文本修剪

需要 c# LINQ Faster 解决方案。查询大型对象列表

c# - "correct"创建没有后台服务的 .NET Core 控制台应用程序的方法

c# - 通过可能丢失的子节点在 LINQ 中排序 XML

c# - 为什么我可以在 Linq to XML 查询中使用 (string) 而不是 "as string"?

c# - TextBoxFor - 显示错误值