【问题标题】:Does VB.NET have functionality similar to TSQL's "IN"?VB.NET 是否具有类似于 TSQL 的“IN”的功能?
【发布时间】:2012-03-31 00:07:04
【问题描述】:

在 TSQL 中..

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

有没有办法在 VB.NET 中做到这一点?

是否可以检查整数集合中是否存在整数内联

如:

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

【问题讨论】:

    标签: sql-server vb.net


    【解决方案1】:

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

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

    数组也有 explicit implementationIList.Contains,所以如果没有 LINQ,一个可能不太优雅的替代方案是:

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

    【讨论】:

      【解决方案2】:

      例如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)
      

      【讨论】:

      • 这是一个很好的答案。我不知道您可以像这样创建和填充内联列表。
      猜你喜欢
      • 2021-04-19
      • 2015-03-15
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      相关资源
      最近更新 更多