.NET 4.x Не получается работать с циклами while и foreach - C#
Формулировка задачи:
Пытаюсь написать что-то вроде модели механизма ввода логина-пароля, но не могу сделать две вещи:
1) заставить при "Login failed!" программу работать дальше по циклу и принимать новую пару логин-пароль;
2) сделать так, чтобы оно выдавало мне только один ответ: при поиске уже второй пары сначала сравнивает с первой парой в базе и пишет "Login failed!", а уже потом при сравнении со второй "Login success!".
Хочу сделать просто ради того, чтобы сделать, чистый интерес.
static void Main(string[] args)
{
List<string> loginBase = new List<string>();
loginBase.Add("log one");
loginBase.Add("log two");
bool logInd;
while (logInd = true)
{
string login = Console.ReadLine();
string pass = Console.ReadLine();
string enterpass = login + " " + pass;
foreach (string el in loginBase)
{
if (String.Equals(el, enterpass))
{
logInd = true;
Console.WriteLine("Login success!");
break;
}
else
{
logInd = false;
Console.WriteLine("Login failed!");
}
}
break;
}
Console.WriteLine("Press any button...");
Console.ReadKey();
}
}Решение задачи: «.NET 4.x Не получается работать с циклами while и foreach»
textual
Листинг программы
//метод, проверяющий есть ли в списке lBase логин/пароль logPas
static bool CheckLoginNPassword(List<string> lBase, string logPas)
{
foreach (string el in lBase) //перебирается список
{
if (el == logPas) //если нашлось совпадение
return true; //метод возвращает true
}
return false; //если не нашлось совпадения при переборе списка, метод возвращает false
}
static void Main(string[] args)
{
List<string> loginBase = new List<string>();
loginBase.Add("log one");
loginBase.Add("log two");
while (true) //бесконечный цикл
{
string login = Console.ReadLine();
string pass = Console.ReadLine();
string enterpass = login + " " + pass;
if (CheckLoginNPassword(loginBase, enterpass)) //провряем, есть ли введенный логин/пароль в списке, и если есть, то
{
Console.WriteLine("Login success!"); //сообщаем об этом
break; //выходим из бесконечного цикла
}
else //если логин/пароль в списке отсутствует
{
Console.WriteLine("Login failed!"); //сообщаем об этом и продолжаем работу цикла
}
}
Console.WriteLine("Press any key...");
Console.ReadKey();
}