Я пытаюсь создать очень простую систему входа в систему на С#, используя массивы для сравнения имени пользователя и пароля.
Я использую цикл for()
для сравнения имени пользователя и пароля, которые пользователь предоставляет, с именами пользователей и паролями, которые находятся в моих массивах. Вот мой код цикла:
string user = null, usrpassword = null;
string[] usernames = {"admin", "guest"};
string[] userpasswords = {"adminpw", "guestpw"};
Console.Write("Username: "); //Username
user = Console.ReadLine();
Console.Write("Password: "); //Password
usrpassword = Console.ReadLine();
Console.WriteLine("Processing...");
for (int i = 0; i <= usernames.Length; i++)
{
if (user == usernames[i] && usrpassword == userpasswords[i])
{
loginloop = false;
Console.WriteLine("Login Successful.");
}
else if (i > usernames.Length)
{
//incorrect username
Console.WriteLine("Incorrect username or password!");
}
} //for-loop-end
Я не получаю никаких синтаксических ошибок при сборке, но когда он достигает цикла for, он падает и дает мне исключение IndexOutOfRange
.
Dictionary<string, string>
. Имя пользователя — это ключ, а пароль — значение. - person Tim Schmelter   schedule 11.10.2013