如果文本框的值与文本文件中每行的任何第一个值匹配,我会有一些显示标签的编码。
Dim sList As New List(Of String)(IO.File.ReadAllLines("Path"))
Dim i As Integer
For i = 0 To sList.Count - 1
If sList(i).StartsWith(textbox1.Text) Then
Label1.Visible = True
Exit For
Else
Label1.Visible = False
End If
Next
问题是如果文本框有1并且文本文件有11它会显示标签,那么最好的方法是什么?
我已经尝试了sList(i).Contains等,但没有一个人在做这项工作。
我在这里尝试了所有的建议,没有任何效果,我的文本文件有如下的数字
11
15
18
例如,如果我在文本框中输入数字1,则标签可见。
答案 0 :(得分:1)
试试这个:
Label1.Visible = IO.File.ReadAllLines("Path.txt").Any(Function(f) f = TextBox1.Text)
答案 1 :(得分:0)
我认为LINQ可以在这里使用:
Dim text = textbox1.Text
Dim textWithSpace = String.Format("{0} ", text)
Label1.Visible = IO.File.ReadAllLines("Path").Any(Function(line) line.StartsWith(textWithSpace) OrElse line = text)
您需要导入System.Linq
才能使其正常运行。
我假设空格结束文件中的每个单词。
答案 2 :(得分:0)
如果您希望在至少有一行以TextBox
中的文字开头时可见标签,您可以使用LINQ和Enumerable.Any
:
Dim matchingLines = From l In IO.File.ReadLines("Path")
Where l.StartsWith(textbox1.Text)
Label1.Visible = matchingLines.Any()
答案 3 :(得分:0)
尝试更改以下行,假设您正在读取文本文件并查找整行的完全匹配,您可以尝试这样做:
If sList(i).StartsWith(textbox1.Text + Environment.NewLine) Then
那应该检查以确保它是唯一的东西,因为它现在正在寻找一个新的行,并且不匹配'11'