2011-11-26 4 views
1

I이 배열 검색 할 생각됩니다 다음 코드를검색 배열은 어떤 결과를 반환하지 않습니다

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"}; 

을 !?!?

+0

'passInput' 무엇입니까? 문자열 메소드로 변환하면 데이터 유형에 약간의 차이가있을 수 있습니다. 디버깅을 시도하고 코드를 단계별로 실행하여 변수의 값을 정확히 확인하십시오. –

답변

4

실수는 아마 여기에 있습니다 : 당신은 또한 디버거에서 userInput의 값을 검사 할 수 있습니다

string userInput = this.passInput.Text; 

: 당신은 윈폼 컨트롤이있는 경우, 대신이 같은 시도

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

기대하는 값이 포함되어 있는지 확인하십시오.

+0

감사합니다, 그 권리! 내 측면에서 어리석은 실수 ... Stackoverflow 나를 허용 할 때 귀하의 질문을 받아 들일 것입니다 –

+0

ToString() "System.Windows.Forms.TextBox, 텍스트 : 실제 입력"같은 것을 반환합니다 –

1

당신은 모든 변수에 대한 제공하는 정보를 havn't는,하지만 난 라인이

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

의심이 문제입니다. this.passInput이 컨트롤 인 경우 사용자가 컨트롤에 입력 한 컨트롤의 이름이 아닌 컨트롤의 유형 이름을 가져옵니다.

그건 당신이 이런 일에 코드를 단순화 할 수 있습니다 true의 경우 :

if (passwordList.Contains(this.passInput.Text)) { 
    MessageBox.Show("FOUND"); 
    foundResult = 1; 
} 
관련 문제