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)
就像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)