簡體   English   中英

如何確定數組中的對象數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM