2012-03-31 8 views
5

In TSQL ..VB.NET ha funzionalità simili a "IN" di TSQL?

IF MyVal IN (1, 2, 3, 4, 14) BEGIN ... END 

C'è un modo per fare questo in VB.NET?

E 'possibile verificare l'esistenza di un numero intero in un insieme di numeri interi linea?

Come ad esempio:

If MyVal in (1, 2, 3, 4, 14) Then ... End If 

risposta

6

Array sono un'implementazione di IEnumerable così con l'System.Linq importazione di una versione abbreviata di Tim Schmelter di answer sarebbe:

{1,2,3,4,14}.Contains(MyVal) 

array hanno anche un explicit implementation di IList.Contains, quindi senza LINQ un forse meno elegante alternativa è:

DirectCast({1,2,3,4,14}, IList).Contains(MyVal) 
3

Per esempio List.Contains Metodo

Dim MyVal = 4 
Dim MyValues = {1,2,3,4,5,6,7}.ToList 

MyValues.Contains(MyVal) 

O BinarySearch:

MyValues.Sort() 
Dim contains = MyValues.BinarySearch(MyVal) > -1 

O Any

MyValues.Any(Function(item)item=MyVal) 
+0

Questa è una buona risposta. Non sapevo che potessi creare e compilare una lista in linea come questa. –

Problemi correlati