una - VB.NET If-Else en la lista
select case vba (6)
Al igual que Slaks señaló , puede usar Contains
en una colección enumerable
. Pero creo que la legibilidad sufre. No me importa si alguna lista contiene mi variable; Quiero saber si mi variable está en alguna lista. Puede envolver contiene en un método de extensión así:
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
Entonces llame así:
If ToStatus.In("1CE","2TL","2PM") Then
Solo quiero saber si hay un enfoque en VB.NET que pueda encontrar si existe un valor específico en una lista o algo que pueda usarse en mi condición If-else. Lo que estoy haciendo ahora es usar esto:
If ToStatus = "1CE" Or ToStatus = "2TL" Or ToStatus = "2PM" Then
''Do something
Else
''Do something
End If
Esto funciona bien, pero ¿cómo es posible que tenga cientos de cadenas para comparar con ToStatus
en el futuro? ¡Será una pesadilla! Ahora, si tal funcionalidad existe, ¿cómo puedo agregar "Y" y "O" en la declaración?
¡Gracias por adelantado!
Eliminar duplicados de la lista
Dim ListWithoutDuplicates As New List(Of String)
For Each item As String In ListWithDuplicates
If ListWithoutDuplicates.Contains(item) Then
'' string already in a list - do nothing
Else
ListWithoutDuplicates.Add(item)
End If
Next
Puede usar la función Contains
:
Dim someList = New List(Of String) From { ... }
If Not someList.Contains(ToStatus) Then
puedes usar el estuche selecto
select case A
case 5,6,7,8
msgbox "you are in"
case else
msgbox "you are excluded"
end select
if {"1CE","2TL","2PM"}.Contains(ToStatus)
entonces ... fin yo
Para .NET 2.0
Me encontré con otro problema en el que la solución SLaks no funcionaría, es decir, si usa .NET 2.0, donde el método Contains
no está presente. Así que aquí está la solución:
If (Array.IndexOf(New String() {"1CE", "2TL", "2PM"}), ToStatus > -1) Then
''Do something if ToStatus is equal to any of the strings
Else
''Do something if ToStatus is not equal to any of the strings
End If