2011-03-23 3 views
0

다음은 arraylist를 검색하는 데 사용하려고하는 코드입니다. 나는 다른 형식으로이 코드와 매우 비슷한 코드를 사용했으며 효과가 있었다. 그러나 여기에서는 그렇지 않습니다. frmMain의 Arraylist 내 고객 번호를 검색하기 위해 사용자가 입력 한 해당 고객 계정 번호를 검색합니다. 그러나 어떤 이유로 그것은 마치 두 번째 if 문을 건너 뛰고 맨 아래에있는 오류 메시지로 이동하는 것과 같습니다.Arraylist 검색 작동하지 않음

Arraylist는 frmMain에 있으며 고객 계정 및 거래에 대한 클래스가 있습니다. 고객에는 계정을 저장하는 또 다른 ArrayList가 있으며, 계정 클래스에는 고객 계정의 트랜잭션을 저장하는 ArrayList가 있습니다.

 foreach (Customer a in frmMain.bankDetails) 
     { 
      if (a.getCustomerNumber().ToUpper().Equals(custSearch)) 
      { 
       foreach (Account b in a.Accounts) 
       { 
        if (b.getAccNumber().Equals(searchString)) 
        { 
         txtSearch.BackColor = Color.PaleGreen; 
         txtAccSortCode.Text = b.getAccSort(); 
         txtAccNumber.Text = Convert.ToString(b.getAccNumber()); 
         txtAccNickName.Text = b.getAccNick(); 
         txtAccDate.Text = b.getAccDate(); 
         txtAccCurBal.Text = Convert.ToString(b.getAccCurBal()); 
         txtAccOverDraft.Text = Convert.ToString(b.getAccOverDraft()); 
         txtNumTrans.Text = Convert.ToString(b.getAccNumTrans()); 
         found = true; 
         break; 
        } 
       } 
      } 
     } 

도움을 주시면 감사하겠습니다.

+3

디버거를 연결하고 코드를 단계별로 실행 했습니까? 그렇게 빨리 답을 찾을 수있을 것입니다! –

+2

'searchString'가 문자열 인 동안'b.getAccNumber()'는 int를 리턴합니까? – SwDevMan81

+1

'List '으로 전환하는 것을 고려하십시오. –

답변

1

searchString이 반환되는 경우 항상 false를 반환합니다. 예 :

int int_four = 4; 
string string_four = "4"; 
bool eq1 = int_four.Equals(string_four); // false 
bool eq2 = int_four.ToString().Equals(string_four); // true 
0

"getCustomerNumber"속성은 실제 숫자 (정수)입니까? 나는 당신이 ToUpper() 메서드를 사용하지 않기 때문에 그렇지 않다고 생각합니다. 편지도 있습니다 (제 생각 엔).

어쨌든 고객 클래스를 알려주시겠습니까? 그리고 고객 번호 예제를 붙여 넣으십시오. Mitja