-1

如果文本框的值与文本文件中每一行的任何第一个值匹配,我有一些编码会显示一个标签。

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,那么标签是可见的。

4

4 回答 4

1

试试这个:

Label1.Visible = IO.File.ReadAllLines("Path.txt").Any(Function(f) f = TextBox1.Text)
于 2012-05-30T20:48:45.857 回答
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才能使其工作。

我假设空格结束文件中的每个单词。

于 2012-05-30T19:04:57.000 回答
0

如果您希望标签在至少有一行以 中的文本开头时可见TextBox,您可以使用 LINQ 和Enumerable.Any

Dim matchingLines = From l In IO.File.ReadLines("Path")
                    Where l.StartsWith(textbox1.Text)
Label1.Visible = matchingLines.Any()
于 2012-05-30T19:05:00.840 回答
0

尝试更改以下行,假设您正在从文本文件中读取并寻找整行的完全匹配,您可以尝试以下操作:

If sList(i).StartsWith(textbox1.Text + Environment.NewLine) Then

那应该检查以确保它是该行上唯一的东西,因为它现在正在寻找新行并且不会匹配'11'

于 2012-05-30T19:05:43.700 回答