0

我希望创建一个简单的 Windows 登录表单,我将文件从 C 驱动器上的文本文件加载,但是当我将字符串与我创建的列表进行比较时,它无法正常工作,这是我的代码

    private void button1_Click(object sender, EventArgs e)
    {
        const string f = "C:/Users.txt";

        List<string> lines = new List<string>();

        string userNameInput = Convert.ToString(userBox);

        using (StreamReader r = new StreamReader(f))
        {

            string line;
            while ((line = r.ReadLine()) != null)
            {
                lines.Add(line);
            }
        }
        for (int i = 0; i < lines.Count; i++)
        {
            MessageBox.Show(lines[i]);
            MessageBox.Show(userNameInput);
            if (lines[i] == userNameInput)
            {
                MessageBox.Show("correct");
            }
            else
            {
                MessageBox.Show("Not Correct");
            }

        }
    }
}

}

4

3 回答 3

2

您可以执行以下操作

if (File.ReadAllLines("C:/Users.txt").Select(x=>x.Trim()).Contains(userBox.Text.Trim()))
{
    MessageBox.Show("correct");
}
else
{
    MessageBox.Show("Not Correct");
}

它的作用是从文件中读取所有行并修剪每一行并与输入文本进行比较。如果有匹配的行,您将收到正确的消息

于 2013-07-05T03:41:14.273 回答
1

您可以简单地使用:

        const string f = @"C:\Users.txt";
        string[] lines = System.IO.File.ReadAllLines(f);
        if (Array.IndexOf(lines, userBox.Text) != -1)
        {
            MessageBox.Show("correct");
        }
        else
        {
            MessageBox.Show("Not Correct");
        }
于 2013-07-05T03:40:30.777 回答
1

为什么要用这个?

string userNameInput = Convert.ToString(userBox);

这可以使用并且更容易自己获取 textBox 的文本。

string userNameInput = userBox.text;

这应该有助于满足您的需求。

const string f = "C:/Users.txt";
string file = System.IO.File.ReadAllText(f);

string[] strings = Regex.Split(file.TrimEnd(), @"\r\n");

foreach (String str in strings)
{
    // Do something with the string. Each string comes in one at a time.
    // So this will be run like for but is simple, and easy for one object.
    // str = the string of the line.
    // I shall let you learn the rest it is fairly easy. here is one tip
    lines.Add(str);
}
// So something with lines list

我希望我有帮助!

于 2013-07-05T03:42:44.657 回答