正在搜索Arraylist不工作​​

问题描述:

下面是我试图用来搜索arraylist的一段代码。我用不同的形式使用了与此非常相似的代码,并且它已经工作。但是这里没有。它旨在搜索frmMain中的Arraylist中的客户号码,然后搜索用户输入的客户帐号。但由于某种原因,它几乎就像跳过第二条if语句并转到底部的错误消息。正在搜索Arraylist不工作​​

ArrayList的是在frmMain,然后有客户账户及交易类。在Customer中有另一个ArrayList存储账户,然后在Account Class中有一个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

您是否附加了调试器并逐步完成代码?你可能会更快地找到答案! – 2011-03-23 16:56:08

+2

是'b.getAccNumber()'返回一个int而'searchString'是一个字符串? – SwDevMan81 2011-03-23 16:57:16

+1

考虑切换到'列表'。 – 2011-03-23 16:58:51

如果b.getAccNumber()是返回一个intsearchString是一个字符串,那么它将始终返回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 

是“getCustomerNumber”属性的实际数目(整数)或不?我认为它不是,因为否则不会使用ToUpper()方法。也有信(我认为)。

无论如何,你会介意让我看看你的客户类吗?并粘贴一些客户编号示例。 米蒂亚