下面是我试图用来搜索arraylist的代码片段。我以不同的形式使用了与此非常相似的代码并且它已经有效。但是在这里它没有。它用于在frmMain上搜索Arraylist中的客户编号,然后搜索用户输入的客户帐号。但由于某种原因,它几乎就像跳过第二个if语句并转到底部的错误消息。
Arraylist位于frmMain,然后是客户账户和交易的课程。在Customer中有另一个存储Accounts的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;
}
}
}
}
任何帮助表示赞赏!
答案 0 :(得分:1)
如果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
答案 1 :(得分:0)
“getCustomerNumber”属性是否为实际数字(整数)?我认为不是,因为你不会使用ToUpper()方法。也有信(我认为)。
无论如何,你介意给我看你的客户课吗?并粘贴一些客户编号示例。 米蒂亚