列表中的VB.NET If-Else

dpp*_*dpp 11 vb.net if-statement list conditional-statements

我只是想知道VB.NET中是否有一种方法可以查找列表中是否存在特定值,或者可以在我的If-else条件中使用哪些值.我现在正在做的是使用这个:

If ToStatus = "1CE" Or ToStatus = "2TL" Or ToStatus = "2PM" Then
    'Do something
Else
    'Do something
End If
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我ToStatus将来有数百个字符串可供比较?这将是一场噩梦!现在,如果存在这样的功能,我如何在语句中添加"And"和"Or"?

提前致谢!

SLa*_*aks 21

你可以使用这个Contains功能:

Dim someList = New List(Of String) From { ... }
If Not someList.Contains(ToStatus) Then
Run Code Online (Sandbox Code Playgroud)

  • `新名单(字符串)来自{"Tom","Dick","Harry"}` (3认同)

小智 6

if {"1CE","2TL","2PM"}.Contains(ToStatus)

然后...结束我


Kyl*_*Mit 5

就像Slaks 指出的那样Contains,您可以在集合上使用enumerable。但我认为可读性会受到影响。我不在乎某个列表是否包含我的变量;我想知道我的变量是否在某个列表

您可以将 contains 包装在扩展方法中,如下所示:

Imports System.Runtime.CompilerServices
Module ExtensionMethods

    <Extension()> _
    Public Function [In](Of T)(ByVal item As T, ByVal ParamArray range() As T) As Boolean
        Return range.Cast(Of T).Contains(item)
    End Function

End Module
Run Code Online (Sandbox Code Playgroud)

然后像这样调用:

If ToStatus.In("1CE","2TL","2PM") Then
Run Code Online (Sandbox Code Playgroud)