2014-01-29 2 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)); 

// 그러나 이것은 작동하지 않습니다.

의견이 있으십니까? DynamicLINQ에서

+0

뭔가를 시도 할 수 있습니다? 니가 일하지 않는다는 뜻? 예외를 발생 시키거나 필터링하지 않습니까? – Grundy

+0

조건은 다음과 같을 수 있습니다. dynamiccondition = "x.Contains ('Story') || x.Contains ('view')"; ->하지만 문자열 배열에 동적 linQ를 쓰는 방법을 모르겠습니다. 필요한 것은 이러한 값 중 하나를 포함하는 문자열을 얻는 것입니다 (동적 linQ를 사용하여 조건을 만들어야 함). – Dev

+0

[공식 페이지] (http://dynamiclinq.codeplex.com/documentation)에서 더 많은 내용을보십시오. – Grundy

답변

1

당신은 AND(&&)OR(||) 같은 논리 연산을 사용, 그래서 당신은 무엇을하려고 조건이

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

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