[英]How to determine number of objects in array
再次我自己找不到解決方案(我曾嘗試將Array.IndexOf(db,accnum)與pos> -1 return boolean一起使用,但是在無法使它工作后恢復到此循環)。 因此,我認為使用db.Length會將'a'保留在數組中所有非null元素的長度上,但是似乎要對整個數組進行計數,這意味着當循環到達null元素時,它將導致錯誤。 當數組中的對象用完時,有沒有辦法停止循環計數?
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");
}
}
}
如果有填充數組的空項目..當到達一個時,退出循環:
for (int i = 0; i < a; i++) {
if (db[i] == null)
break;
// the rest
或者,使用LINQ篩選出空項目:
foreach (var item in db.Where(x => x != null)) {
// loop here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.