Je suis relativement nouveau à LINQ et je ne sais pas comment faire une condition similaire. J'ai une liste IEnumerable de myObject et je veux faire quelque chose comme myObject.Description comme 'Help%'. Comment puis-je accomplir cela? MerciLike condition in LINQ
Répondre
Regardez ici:
http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/10/16/linq-to-sql-like-operator.aspx
Snippet:
StartsWith
et Contains
:
var query = from c in ctx.Customers
where c.City.StartsWith("L") && c.City.Contains("n")
select c;
Et si vous devez l'utiliser avec LINQ to SQL (ne fonctionne pas avec LINQ to Objects):
sur mesure LIKE
(System.Data.Linq.SqlClient.SqlMethods.Like
):
var query = from c in ctx.Customers
where SqlMethods.Like(c.City, "L_n%")
select c;
Vous pouvez utiliser StartsWith, EndsWith ou Contains selon l'endroit où vous voulez vérifier:
var result = from o in myCollection
where o.Description.StartsWith("Help")
select o;
Vous pouvez en option passer un StringComparison pour indiquer si d'ignorer le cas ou non (pour StartsWith
et EndsWith
), qui fait fonctionner l'opération plus comme une requête SQL:
var result =
from o in myCollection
where o.Description
.StartsWith("Help", StringComparison.InvariantCultureIgnoreCase))
select o;
Si vous voulez faire un peu sensible de cas contient, vous devez utiliser IndexOf à la place:
var result =
from o in myCollection
where o.Description
.IndexOf("Help", StringComparison.InvariantCultureIgnoreCase) > 0
select o;
'StartsWith' et amis vous permettent également de spécifier le type de comparaison. –
@Matti - Je mentionne cela juste après le premier exemple de code. –
Oh ... euh, bon point! Continuer. –
Vous utilisez généralement exactement la même syntaxe que vous utiliseriez en dehors d'une requête.
myObject.Description.StartsWith("Help")
Si cela fonctionne réellement dépend de l'endroit où vous utilisez LINQ (il peut être soit couru code, dans lequel tout cas fonctionne, ou se transforme en quelque chose comme autre, comme SQL, ce qui pourrait avoir des limites), cependant, ça vaut toujours la peine d'essayer.
vous pouvez utiliser string.StartsWith ou string.EndsWith ou string.Contains propriété de chaîne à utiliser comme comme opérateur.
startswith fonctionnera pour comme 'A%'
endsWith fonctionnera pour comme '% A'
Contient fonctionnera comme '% A%'
- 1. Linq/SQL Query Tri pour plusieurs Condition LIKE
- 2. MySQL IN avec LIKE
- 3. if condition in nant
- 4. Linq like for Java
- 5. LINQ - si la condition
- 6. En condition utilisant LINQ
- 7. Dynamic LINQ Like
- 8. Condition SQL LIKE pour vérifier l'entier?
- 9. Linq LIKE fonctionnalité
- 10. NHibernate Linq Like Query Question
- 11. Recherche plein texte like in InnoDB
- 12. Plusieurs requêtes LINQ "IN"
- 13. SQL: relation plusieurs-à-plusieurs, condition IN
- 14. Comment faire une requête LIKE avec linq?
- 15. 'IN' & 'NOT IN' dans Linq requête
- 16. LINQ-to-SQL IN()
- 17. Nhibernate Linq In Clause
- 18. LINQ à SQL SubSelect Like Query
- 19. LINQ Multiple LIKE basé sur Liste
- 20. Supérieur à la condition dans Linq Join
- 21. linq où condition sur sous-sélection
- 22. déclaration LINQ comme si la condition
- 23. requête linq ajouter dynamiquement où condition?
- 24. Comment utiliser où condition
- 25. la version Linq de SQL "IN" déclaration
- 26. Comment utiliser Like dans Linq Query?
- 27. Linq équivalent à SQL LIKE [a-f]
- 28. Version LINQ de l'instruction LIKE de SQL
- 29. IN avec LINQ pour objet
- 30. Combinaison de "LIKE" et "IN" pour SQL Server
en double possible [Comme dans l'expression Lambda et LINQ] (http : //stackoverflow.com/questions/3616215/like-in-lambda-expression-and-linq) –
@All .... merci pour les commentaires et réponses. Très utile et utile ...... – MikeTWebb