搜索Arraylist无法正常工作

时间:2011-03-23 16:54:10

标签: c# arraylist

下面是我试图用来搜索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;
                    }
                }
            }
        }

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

如果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

答案 1 :(得分:0)

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

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