2010-10-01 5 views
1

Je sais comment utiliser .Contains pour rechercher '% testwords%', ma question est sur la façon d'utiliser linq pour obtenir '% test% words% '.Comment obtenir quelque chose comme sql '% test% words%' dans linq

var query = from o in yourObject 
      where o.field.Contains("test") 
      where o.field.Contains("words") 
      where o.field.indexOf("test") < o.field.indexOf("words") 
      select o; 

si vous utilisez LINQ to SQL, utilisez les SqlMethods que Stefanvds a montré: si vous ne l'utilisez LINQ to SQL Merci

+0

Pour clarifier: Essayez-vous de trouver des enregistrements qui ont "test" plus des enregistrements qui ont des "mots" ou est-il inclusif en ce sens que tous les enregistrements doivent avoir le mot " test "et" mots "? – NotMe

+0

@Chris, je veux la fonction exacte comme déclaration SQL" comme '% test% mot%' ", et nous ne sommes pas autorisés à utiliser linq à sql – Zalan

+0

J'ai vu cela et corrigé l'étiquette. –

Répondre

2

peut-être quelque chose comme. bien

+0

c'est la réponse alors – Zalan

1
.Where(q => SqlMethods.Like(q,"%test%words%")) 

utilisation SqlMethods

+0

que diriez-vous du% au milieu? – DOK

+0

Merci, Stefanvds. Nous ne sommes pas autorisés à utiliser linq à sql – Zalan

+0

cela ne signifie pas que ce n'est pas une réponse correcte. Vous pouvez changer la syntaxe Linq To Sql en LINQ. Ce n'est pas difficile. "Votre code est correct Stefandvds" – AEMLoviji

0

, je pense que la réponse est NON :(

probablement la réponse la plus proche est lst.Where (foo.Contains ("test") & & foo.Contains ("mot")), bien que cette déclaration Ne donne pas la bonne séquence comme '% test% word%'

Questions connexes