正在搜索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;
}
}
}
}
任何帮助表示赞赏!
答
如果b.getAccNumber()
是返回一个int
和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
答
是“getCustomerNumber”属性的实际数目(整数)或不?我认为它不是,因为否则不会使用ToUpper()方法。也有信(我认为)。
无论如何,你会介意让我看看你的客户类吗?并粘贴一些客户编号示例。 米蒂亚
您是否附加了调试器并逐步完成代码?你可能会更快地找到答案! – 2011-03-23 16:56:08
是'b.getAccNumber()'返回一个int而'searchString'是一个字符串? – SwDevMan81 2011-03-23 16:57:16
考虑切换到'列表'。 –
2011-03-23 16:58:51