VB.NET是否具有与TSQL类似的功能" IN"?

时间:2012-03-31 00:07:04

标签: sql-server vb.net

在TSQL ..

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

有没有办法在VB.NET中执行此操作?

是否可以检查一组整数内嵌中是否存在整数?

如:

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

2 个答案:

答案 0 :(得分:6)

数组是IEnumerable的一个实现,因此使用System.Linq导入Tim Schmelter的answer的速记版本将是:

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

数组也有explicit implementation IList.Contains,因此如果没有LINQ,可能不太优雅的选择是:

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

答案 1 :(得分:3)

例如List.Contains方法

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

MyValues.Contains(MyVal)

BinarySearch

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

Any

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