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