2011-12-28 4 views
3

Je demande à mon intérêt pour apprendre:SQL Server « dans » équivalent en .Net

Select * from Customer where CustomerId in(12,23,45); 

est De même il un C# .Net mots-clés pour le même ci-dessus?

Exemple: vérifier la date (mois) non Oct, Nov décembre (pas dans SQL ou LINQ)

Je l'ai fait avec la méthode d'extension (opérateur ternaires et || en vérifiant par mois) Je cherche un moyen simple de vérifier, s'il existe.

Répondre

11

Threre pas de mot clé, mais vous pouvez utiliser la construction suivante:

using System.Linq; 
... 
(new [] {12, 23, 45}).Contains(customerID) 
+0

wow !! merci beaucoup. Réponse vraiment rapide. – Nash

+1

Note mineure: si l'ensemble d'inclusion est grand, cela pourrait valoir la peine d'un 'HashSet <>' - mais seulement s'il est grand –

1

Non, il n'y a pas, mais vous pouvez faire quelque chose comme:

bool contains = (new string[] {"Oct","Nov","Dec"}).Contains("Dec"); 
0

Vous devez garder à l'esprit Cependant, en interrogeant la base de données SQL, il y a une limite: l'ensemble ne peut pas être plus grand que 2100 éléments, car chaque élément est passé au serveur SQL en tant que paramètre séparé et le serveur SQL autorise 2100 paramètres maximum par requête. Donc, sauf si vous êtes sûr que vous n'aurez pas autant d'articles dans un ensemble consultable, je suggère d'utiliser quelque chose comme this.

Questions connexes