C# авторизация. Проверка логина на уникальность

Добрый день. Изучаю с# недавно и задали сделать окно авторизации. в инете нашел код и переделал под себя но никак не могу сделать проверку логина на уникальность. Подскажите пожалуйста как решить это.
Вот сам код

namespace qwer
{
    public partial class RegistrationForm : Form
    {
        public string login = string.Empty;
        public string password = string.Empty;
        private Users user = new Users();
        public RegistrationForm()
        {
            InitializeComponent();
            LoadUsers(); // Метод десериализует класс.
        }
        private void LoadUsers()
        {
            try
            {
                FileStream fs = new FileStream("Users.dat", FileMode.Open);

                BinaryFormatter formatter = new BinaryFormatter();

                user = (Users)formatter.Deserialize(fs);

                fs.Close();
            }
            catch { return; }
        }
        private void EnterToForm()
        {
            for (int i = 0; i < user.Logins.Count; i++) // Ищем пользователя и проверяем правильность пароля.
            {
                if (user.Logins[i] == loginTextBox.Text && user.Passwords[i] == passwordTextBox.Text)
                {
                    login = user.Logins[i];
                    password = user.Passwords[i];

                    this.Close();
                }
                else if (user.Logins[i] == loginTextBox.Text && passwordTextBox.Text != user.Passwords[i])
                {
                    login = user.Logins[i];

                    MessageBox.Show("Неверный пароль!");
                }
            }

            if (login == "") { MessageBox.Show("Пользователь " + loginTextBox.Text + " не найден!"); }
        }

        private void AddUser() // Регистрируем нового пользователя.
        {
            if (loginTextBox.Text == "" || passwordTextBox.Text == "") { MessageBox.Show("Не введен логин или пароль!"); return; }

            user.Logins.Add(loginTextBox.Text);
            user.Passwords.Add(passwordTextBox.Text);

            if (Regex.IsMatch(passwordTextBox.Text, "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{10,}$"))
            {
                // пароль верен
            }
            else
            {
                MessageBox.Show("Пароль должен содержать минимум десять символов, как минимум одна заглавная буква, одна строчная буква и одна цифра.");
                return;
            }
            for (int i = 0; i < user.Logins.Count; i++) // Ищем пользователя и проверяем правильность пароля.
            {
               if (login == loginTextBox.Text )
                {
                    login = user.Logins[i];

                    MessageBox.Show("Пользователь с таким логином уже существует.");
                    return;
                }
            }
          

            FileStream fs = new FileStream("Users.dat", FileMode.OpenOrCreate);

            BinaryFormatter formatter = new BinaryFormatter();
            formatter.Serialize(fs, user); // Сериализуем класс.

            fs.Close();

            login = loginTextBox.Text;

            this.Close();
        }
        private void regButton_Click(object sender, EventArgs e)
        {
            AddUser();
        }

        private void exitButton_Click(object sender, EventArgs e)
        {
            Application.Exit(); // Закрываем программу.
        }

        private void enterButton_Click(object sender, EventArgs e)
        {
            EnterToForm();

        }
        private void RegistrationForm_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (login == "" | password == "") { Application.Exit(); }
        }

    }
}

Так а в чем именно проблема?

И если Users это список юзеров, то зачем называть переменную user (один)? Чтоб код читать сложнее было?)
Вообще лучше сделать класс User с одним логином/паролем, и список List<User> users.

Проблема в том что проверка логина не проходит и регистрирует всех подряд

Тут явно что-то не то. Сначала сравнивали непонятно что и текстбокс, потом присвоили )

Присваивать видимо надо было до if.

Или просто вызвать user.Logins.Contains вместо цикла.