VB.net计算列表框中的特定文本项?

时间:2014-01-26 22:00:35

标签: vb.net count listbox

过去一周,虽然知道这个代码非常简单,但是我已经在圈子里乱逛了。我有很多问题。

我正在为大学作业创建一个简单的餐厅菜单,用户可以选择他们想要的项目,然后计算最终价格并在标签中显示。

我把它设置得非常简单,每个食品都在表格上的标签上,旁边的按钮显示“添加”。单击它然后将其添加到列表框。用户可以选择添加每个项目的倍数,也可以删除这些项目,所有这些都是我已经整理好的。

我想要发生的是当我点击“计算”按钮时,我想在列表框中搜索每个项目,计算其中的数量,并为每个项目添加相关值。例如,如果我将3个Garlic Bread添加到列表框中,我希望计算按钮在列表框中搜索大蒜面包,并且每次出现时添加1.20。每个项目都需要这个。

如果有人能提供帮助,那真的会有所帮助:D

如果有帮助,我正在使用一种名为'Form1'的形式,我的列表框叫做'Listbox1',我也有20种食物。

前几天我确实问了这个问题,当我要求解释如何将其翻译成我的项目时,这些信息很有用,但根本没有任何意义。我知道这可能很难,但请理解我是VB的新手,所以如果你能解释像我这样的一切,我将不胜感激:D

干杯

1 个答案:

答案 0 :(得分:0)

为项目创建一个字典可能最容易,项目名称为关键,价格为值。将此字典设为全局变量,并在Form.Load事件中填充它:

Dim MenuItems As Dictionary(Of String, Decimal)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    MenuItems = New Dictionary(Of String, Decimal)
    MenuItems.Add("Garlic Bread", 12.23)
    MenuItems.Add("Roast Beef", 2.23)
    (...)
End Sub

在您的计算方法中,您将遍历列表并在字典中查找价格:

Dim TotalPrice As Decimal = 0
For Each item As Object In Listbox1.Items
    If MenuItems.ContainsKey(item.ToString) Then TotalPrice += MenuItems(item.ToString)
Next
Return TotalPrice

如果您这样做,您甚至可以从字典中动态创建菜单(在表单加载时将字典中每个项目的标签和按钮添加到表单中)。