переходя в состояние, даже если sring не то же самое - PullRequest
0 голосов
/ 11 июня 2019

Я новичок в VB.NET.Я перебираю Список АВТОМОБИЛЕЙ и добавляю индексы в STRING в другой Список, если числа в виде Строк соответствуют нескольким условиям.

Первое условие;Если Not item.Equals ("11652") все еще попадает в состояние, даже если оно не соответствует действительности;

Equals (), Not Equals (), Tostring.Equals

Dim cpti = 0

For Each item In Vehicules.Items
    If ex = 1 Then
        If Not item.Equals("11652") Or item.ToString() <> "11785" Or item.ToString() <> "11814" Or item.ToString() <> "11852" Or item.ToString() <> "11853" Then
            list.Add(cpti)
        End If             

        If item.ToString() = "530011" Or item.ToString() = "530012" Or item.ToString() = "530013" Or item.ToString() = "530014" Or item.ToString() = "530015" Or item.ToString() = "530016" Or item.ToString() = "530017" Or item.ToString() = "530018" Or item.ToString() = "530019" Or item.ToString() = "530020" Then
            list.Add(cpti)
        End If  
    ElseIf ex = 3 Then
        If item.ToString() <> "326481" Or item.ToString() <> "326483" Or item.ToString() <> "326556" Or item.ToString() <> "326557" Then
            list.Add(cpti)
        End If
    Else
        liste.Add(cpti)
    End If

    cpti = cpti + 1
Next

1 Ответ

1 голос
/ 11 июня 2019

Давайте возьмем эту строку

If item <> "11652" Or item <> "11785" Then

Это всегда будет равно true.Давайте попробуем несколько примеров

item = "1"
If item <> "11652" Or item <> "11785" Then
If True Or True Then ' Both of them are True, go in the If

item = "11652"
If item <> "11652" Or item <> "11785" Then
If False Or True Then ' One of them is true, go in the If

item = "11785"
If item <> "11652" Or item <> "11785" Then
If True Or False Then ' One of them is true, go in the If

Возможно, вы захотите сделать AND вместо OR.Но я не знаю логики того, что вы хотите сделать, поэтому я не могу дать вам прямой ответ.

...