2010-08-09 3 views
6

Je suis en train d'écrire une requête LINQ dynamique comme:Comment écrire String.Contains dans Dynamic Linq

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

Je sais que cela fonctionne pour

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

mais je suis à la recherche dynamique solution linq

Merci.

+0

Quelle partie doit être modifiable? message ou "bonjour"? –

+0

En fait est "Contient" – Zalan

Répondre

1

Je sais que ce n'est pas ce que vous cherchez, mais comme un point à considérer:

Selon le nombre de différents types d'opérations que vous attendez d'effectuer, je créerais une instruction switch pour gérer cette .

À titre d'exemple, certains pseudo-code en utilisant un ENUM:

(OperationType est un Enum si désiré)

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

Salut JYelton, merci pour votre réponse. En fait je cherche des réponses comme ce que Mike a proposé. Mais l'expression de Mike ne marche pas. – Zalan

11

trouvé ma réponse maintenant.

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