0
我再次找不到自己的解決方案(我嘗試使用Array.IndexOf(db,accnum),pos> -1返回布爾值,但在我無法執行後恢復到此循環不會使它工作)。 所以,我認爲使用db.Length會在數組中所有非null元素的長度上留下'a',但它似乎計算整個數組,這意味着當循環到達空元素時它會導致錯誤。當數組中的對象用完時,有沒有辦法停止循環計數?如何確定數組中的對象
void withdrawal()
{
int accnum;
double withdrawal;
//get and parse input details
accnum = int.Parse(tbNameEnt.Text);
withdrawal = double.Parse(tbBalaEnt.Text);
//check if account exists within existing objects
int a = db.Length;
for (int i = 0; i < a; i++)
{
if (db[i].GetAccNo() == accnum)
{
pos = i;
//deduct from balance
db[pos].SetBalance(db[pos].GetBalance() - withdrawal);
WithMess(); //success message
hide_form();
MakeWith2.Visible = false;
show_menu();
break;
}
else if ((db[i].GetAccNo() != accnum) && (i == db.Length - 1))
{
//account doesn't exist message
MessageBox.Show("Account does not exist");
}
}
}
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
爲什麼要使用數組?爲什麼不使用集合,在這種情況下不會有「空」項目?您可以添加和刪除,集合將會增長和縮小。 – jmcilhinney