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

Vb.net 有没有一种方法可以简化使用同一数组的多个值?,vb.net,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

我正在设置一个程序来测试文本框是否包含某些值,而不包含其他特定值

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)
”值要多得多,这一点已被简化。

尽管问题中的变量名称令人困惑,但您似乎需要类似以下内容:

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
产出:

上午


Dim ii=i
的原因是。

将所有这些值,如“m”和单位(x)中的任何值放入一个数组中,并在循环中嵌套另一个查找。您是在执行
字符串
搜索还是
控件
搜索?
文本框(I).Contains(“m”)
(由于“m”无法转换为控件,因此无法工作)在
Text
属性中搜索控件而不是字符串。你所说的价值观是什么意思?字符串?,控件?,如果该代码有效,则
文本框
必须是
字符串
数组。命名
字符串
数组
文本框
有什么意义?一开始它是单数的,实际上它并没有描述数组包含的内容。每个名字都应该描述事物是什么。当然,它实际上是一个
TextBox
数组,在这种情况下,它应该命名为
textboxs
,您需要使用每个元素的
Text
属性。当然
txtreult
也是一个
TextBox
,您也需要使用那里的
Text
属性。TextBox中存储的字符串是一个字符,名称是一个正在进行的工作名称不需要是正在进行的工作。如果变量的类型不是
TextBox
,则不应将其命名为
TextBox
,甚至不应命名。当您声明变量时,您知道变量的用途,并且,即使它只是临时的,您也可以尽可能使代码对我们来说尽可能清晰。