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
,甚至不应命名。当您声明变量时,您知道变量的用途,并且,即使它只是临时的,您也可以尽可能使代码对我们来说尽可能清晰。