2010-08-09 49 views
6

我想寫一個動態的LINQ查詢,如:如何寫String.Contains動態的LINQ

var q = obj.Where("message.Contains('hello')"); 

我知道它的工作原理爲

var q = obj.Where(o => o.message.Contains('hello')); 

,但我正在尋找動態linq解決方案

謝謝。

+0

什麼部分需要變動?消息還是「你好」? – 2010-08-09 14:42:19

+0

其實是「包含」 – Zalan 2010-08-09 15:03:17

回答

1

我知道這是不是你在找什麼,但只是作爲一個點來考慮:

取決於你希望有多少各種操作的執行,我想創建一個switch語句來處理這個。

作爲一個例子,一些僞使用枚舉:

(OperationType是一個枚舉如果需要的話)

private object example(OperationType optype, Object obj, String match) 
{ 
    var q; 
    switch (optype) 
     { 
     case OperationType.Contains: 
      q = obj.Where(o => o.message.Contains(match)); 
     break; 
     case OperationType.EndsWith: 
      q = obj.Where(o => o.message.EndsWith(match)); 
     break; 
     case OperationType.StartsWith: 
      q = obj.Where(o => o.message.StartsWith(match)); 
     break; 
    } 
    return q; 
} 
+0

嗨JYelton,謝謝你的回覆。其實我正在尋找像Mike提出的一些答案。但邁克的表情不起作用。 – Zalan 2010-08-11 08:09:17

11

現在找到我的答案。

var q = obj.Where("message.Contains(@0)", "hello");