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

标签 c# textbox .net-4.5 streamreader

我想做的很简单;当我单击一个按钮时,我的应用程序应检查 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;
        }
    }

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

最佳答案

string usersTXT = sr.ReadLine();

只读一行。所以您只检查是否匹配文件中的第一行

你想要File.ReadALlLines (这也正确地处理了流,而你没有):

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

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

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

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

关于c# - 如何使用 C# 检查文本框是否包含来自 TXT 文件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28909465/

相关文章:

c# - 在没有单独方法的情况下在 RESTful WCF 中混合 XML 和 JSON

java - GWT/文本框-单击和双击处理程序选项?可能的?

c# - 为什么在 C# 中启用多行的 TextBox 控件上禁用 CTRL+A 快捷方式?

c# - 使用 IProgress<T> 从后台线程报告

.net - Visual Studio 2012随机报告:“找不到引用的组件X”

c# - 属性的客户端 ID (ASP.Net MVC)

c# - 无法解释的 InvalidOperationException 与 GroupPrincipal 和 SAM PrincipalContext

c# - 使用 C# 将多行插入到 MS Sql Server

c# - 按下输入时从文本框中触发命令?

c# - 以 MVVM 安全方式将 WPF 元素(UserControl)移动到新窗口?