簡體   English   中英

使用for循環而不是if語句從列表框中累積值

[英]Accumulating values from a listbox with a for loop instead of if statements

我已經學習了如何使用if語句累加總數,現在我正在嘗試縮短代碼。 我的一個朋友告訴我,您可以使用FOR循環來執行此操作,因此我嘗試了一下,但是我無法完全理解FOR循環。

我的IF代碼是這個...

if (lbSnacks.Items[0].Selected)
{
    decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[0].Value);
}
if (lbSnacks.Items[1].Selected)
{
   decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[1].Value);
}
if (lbSnacks.Items[2].Selected)
{
    decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[2].Value);
}
if (lbSnacks.Items[3].Selected)
{
     decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[3].Value);
}
if (lbSnacks.Items[4].Selected)
{
     decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[4].Value);
}
if (lbSnacks.Items[5].Selected)
{
     decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[5].Value);
}

當然,我將其注釋掉以嘗試使用for循環。 我使用的循環是這樣的:

for (int i = 0; i < lbSelected.Items.Count; i++)
{
   decSnackSaleTotal += Convert.ToDecimal(lbSelected.Items[i]); 
}

lbSelected是我的第二個listbox ,所選項目來自客戶。 lbSnacks是我選擇小吃的第一個listbox

謝謝!

盡管您也需要在循環中訪問Value屬性,但是這種方法應該可以滿足您的需要,類似於if語句:

decSnackSaleTotal += Convert.ToDecimal(lbSelected.Items[i].Value);

不過,這在功能上與if語句的功能不同。

  • 在前一種情況下,僅在總計中選擇一個值即可。
  • 在后一種情況下,無論是否選擇,都將添加所有值。

您可能要檢查循環中的內容。

還有其他方法可以解決該問題,但這至少比一次檢查每個元素要好。

可能無法將項目轉換為十進制,似乎您必須像if方法一樣讀取Value屬性。

for (int i = 0; i < lbSelected.Items.Count; i++){
            decSnackSaleTotal += Convert.ToDecimal(lbSelected.Items[i].Value); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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