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