2014-01-29 95 views
0

我有一個這樣的字符串數組。字符串數組上的動態linQ

string[] ColumnArray = new string[] { First story, second data , third way }; 

以下是該數組上的linQ查詢。

string query = (from x in ColumnArray 
          where x.Contains("Story") 
          select x).First(); 

但有時查詢會是這樣的。

string query = (from x in ColumnArray 
         where (x.Contains("Story") || x.Contains("View")) 
         select x).First(); 

這個條件應該動態添加。那麼動態的LinQ如何在這裏提供幫助。

我寫過類似這樣的東西。

string dynamiccondition= // some condition. 

var query = (from x in ColumnArray.AsEnumerable().AsQueryable().Where(dynamiccondition).Select(x)); 

//但這不起作用。

有什麼建議嗎?

+0

嘗試什麼條件?你的意思是不工作?它引發異常還是不過濾? – Grundy

+0

條件可能是這樣的字符串dynamiccondition =「x.Contains('Story')|| x.Contains('view')」; - >但我不知道如何在字符串數組上寫動態linQ。我需要的是獲取包含任何這些值的字符串(我需要使用動態linQ來創建條件)。 – Dev

+0

嘗試在[官方頁面]上查看更多(http://dynamiclinq.codeplex.com/documentation) – Grundy

回答

1

DynamicLINQ您可以使用邏輯運算像AND(&&)OR(||),所以嘗試這樣的事情

string dynamiccondition="it.Contains(\"Story\") OR it.Contains(\"View\")" 

var query = ColumnArray.AsQueryable() 
         .Where(dynamiccondition);