Поиск по массиву не возвращает никаких результатов - PullRequest
1 голос
/ 26 ноября 2011

У меня есть следующий код для поиска в массиве:

for (int i = 0; i < this.passwordList.Length; i++)

       {

            string userInput = Convert.ToString(this.passInput);

            if(userInput == passwordList[i])
            {

                MessageBox.Show("FOUND");
                foundResult = 1;
                break;

            }
            //MessageBox.Show();


        }

и массив имеет следующие результаты:

public string[] passwordList = {"123456", "145784" , "asasas"};

Что я делаю не так!?!?

Ответы [ 2 ]

4 голосов
/ 26 ноября 2011

Ошибка, вероятно, здесь:

string userInput = Convert.ToString(this.passInput);

Если у вас есть элемент управления WinForms, попробуйте что-то вроде этого:

string userInput = this.passInput.Text;

Возможно, вы также захотите проверить значение userInput в отладчике, чтобы убедиться, что оно содержит ожидаемое вами значение.

1 голос
/ 26 ноября 2011

Вы не предоставили информацию обо всех ваших переменных, но я подозреваю, что строка

string userInput = Convert.ToString(this.passInput);

это проблема. Если this.passInput является элементом управления, вы получите имя типа элемента управления, а не то, что пользователь ввел в элемент управления.

Если это так, вы можете упростить свой код до следующего вида:

if (passwordList.Contains(this.passInput.Text)) {
  MessageBox.Show("FOUND");  
  foundResult = 1;  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...