如何使用 C# 检查文本框是否包含来自 TXT 文件的行

How to check if a textbox has a line from a TXT File with C#

我想做的很简单;当我点击一个按钮时,我的应用程序应该检查 textBox1.Text 是否有文本文件中的一行。

注意:我不想检查文本框是否包含所有文本文件,只是想看看它是否有一行。

我试过了,但没有成功:

 private void acceptBtn_Click(object sender, EventArgs e)
    {
        StreamReader sr = new StreamReader(usersPath);
        string usersTXT = sr.ReadLine();
        if (user_txt.Text == usersTXT)
        {
            loginPanel.Visible = false;
        }
    }

希望有人能帮助我。提前致谢 - 建行

if (File.ReadAllLines(path).Any(x => x == line))
{
    // line found
}

x == line 替换为不区分大小写的检查或 Contains(如果需要)。

尝试对字符串使用 Contains() 函数:

private void acceptBtn_Click(object sender, EventArgs e)
{
    StreamReader sr = new StreamReader(usersPath);
    string usersTXT = sr.ReadLine();
    if (user_txt.Text.Contains(usersTXT))
    {
        loginPanel.Visible = false;
    }
}
string usersTXT = sr.ReadLine();

刚读完一行。所以你只是检查你是否匹配文件中的 first 行。

您想要 File.ReadALlLines(这也能正确处理流,但您不是):

if (File.ReadAllLines(usersPath).Contains(user_txt.Text))
{
}

读取所有行,枚举所有行以检查您的行是否在集合中。这种方法的唯一缺点是它总是读取整个文件。如果您只想阅读直到找到您的输入,则需要自己滚动阅读循环。如果你走那条路,一定要确保在 using 块中使用 StreamReader

您也可以只使用 File.ReadLines(感谢@Selman22)来获取它的惰性枚举版本。我个人会选择这条路线。

显示此内容的实现:http://referencesource.microsoft.com/#mscorlib/system/io/file.cs,675b2259e8706c26