2010-08-09 14 views
6

Dinamik Linq String.Contains yazmak için: BenBen gibi dinamik bir linq sorgusu yazmaya çalışıyorum

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

için çalıştığını biliyorum

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

ama dinamik arıyorum linq özümü

Teşekkürler.

+0

Hangi bölümün değişebilir olması gerekir? mesaj veya "merhaba"? –

+0

Aslında "İçeriyor" – Zalan

cevap

1

Bunun aradığınız değil mi biliyorum, ama sadece bir nokta olarak dikkate almak:

Eğer bekliyorsan kaç operasyonun çeşitli bağlı olarak, bu işlemek için bir switch deyimi yaratacak . Örnek olarak

, Bir enum kullanarak bazı yalancı kod:

(OperationType istenirse bir Enum olduğunu)

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

Merhaba JYelton, cevabınız için teşekkürler. Aslında Mike'ın önerdiği gibi bazı cevaplar arıyorum. Ama Mike'ın ifadesi işe yaramıyor. – Zalan

11

cevabımı şimdi buldum.

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