2010-08-09 2 views
6

동적 Linq에에 String.Contains를 작성하는 방법 : 나는내가 좋아하는 동적 LINQ 쿼리를 작성하는 것을 시도하고

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

작동 알고

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

하지만 난 동적 찾고 있어요 linq 솔루션

감사합니다.

+0

어떤 부분을 변경해야합니까? 메시지 또는 "안녕하세요"? –

+0

실제로는 "Contains"입니다. – Zalan

답변

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, 답장을 보내 주셔서 감사합니다. 사실 저는 마이크가 제안한 것과 같은 몇 가지 해답을 찾고 있습니다. 그러나 마이크의 표현은 효과가 없습니다. – Zalan

11

지금 내 대답을 찾을 수 있습니다.

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