visual una then net linea end elseif else ejemplos anidados vb.net list condition if-statement

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

VB.NET - Alternativa a Array.Contains?