一千萬個為什麽

搜索

如何在運行時從文本構建LINQ查詢?

我有一個

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

and a List data and can build a linq query like e.g.

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 baby!

回覆。評論。

是的,使用Dynamic Linq可能無法編寫示例,但如果您將常量分解出來,例如'從數據中'你留下'where'和'select',它們可以用動態linq表示。

所以兩個文本框,如果包含orderby,可能是三個,可能滿足您的要求。

只是一個想法。

Jon有一個有趣的方法,但我會對編譯和執行無限制代碼持謹慎態度。

轉載註明原文: 如何在運行時從文本構建LINQ查詢?