有没有一种方法可以简化使用同一数组的多值?

时间:2019-11-05 01:06:13

标签: vb.net

我正在设置一个程序,以测试文本框是否包含某些值并且不包含其他某些值。

For I = 0 To 3

    If textbox(I).Contains("m") And Not textbox(I).Contains(unit(0)) And Not textbox(I).Contains(unit(1)) And Not textbox(I).Contains(unit(2)) Then

        txtResult = textbox(I)

    End If

Next I

代码有效,但是我想知道是否有一种简化方法

textbox(I).Contains(unit(0)) And Not textbox(I).Contains(unit(1)) And Not textbox(I).Contains(unit(2))

正如在实际代码中一样,程序通过的“ unit(I)”值更多,这已得到简化。

1 个答案:

答案 0 :(得分:0)

尽管问题中的变量名令人困惑,但您似乎想要这样的东西:

Module Module1

    Sub Main()
        Dim data = {"am", "b", "cm", "d"}
        Dim unit = {"c", "d", "e"}

        For i = 0 To 3
            Dim ii = i
            If data(ii).Contains("m") AndAlso Not (unit.Any(Function(x) data(ii).Contains(x))) Then
                Console.WriteLine(data(ii))
            End If
        Next

        Console.ReadLine()

    End Sub

End Module

输出:

  

am

Dim ii = i的原因是using the iteration variable in a lambda expression may have unexpected results