从列表框中查找特定客户类型

时间:2013-06-02 04:49:58

标签: vb.net

我想问一下我的工作。

我必须从adult, child,concession找到listbox customer type的特定客户类型。

这是我的代码:

    Dim iCounter As Integer = 0
    Dim sCustType As String = ""

    sCustType = "adult" Or "child" Or "concession"


    For iCounter = 0 To lstCustType.Items.Count + 1

        If lstCustType.Items(iCounter) = sCustType Then

            lstQuoteResult.Items.Add(lstQuoteNum.Items(iCounter))
            lstCustResult.Items.Add(lstCustType.Items(iCounter))
            lstBagResult.Items.Add(lstBaggageWeight.Items(iCounter))
            lstBagWeightResult.Items.Add(lstBagWeight.Items(iCounter))
            lstDestResult.Items.Add(lstDestinationCost.Items(iCounter))
            lstTripResult.Items.Add(lstHighSesason.Items(iCounter))
            lstQuiteResult.Items.Add(lstQuiteCarriageCost.Items(iCounter))
            lstInsResult.Items.Add(lstInsurance.Items(iCounter))
            lstInsCResult.Items.Add(lstInsuraneCost.Items(iCounter))
            lstReturnResult.Items.Add(lstReturnTripCost.Items(iCounter))
            lstTotalResult.Items.Add(lstTotal.Items(iCounter))
        End If
    Next

但它不起作用。显然有一个错误Conversion from string "adult" to type 'Long' is not valid.

请帮帮我。

感谢。

2 个答案:

答案 0 :(得分:1)

尝试在项目比较期间添加.ToString:

If lstCustType.Items(iCounter).ToString() = sCustType Then

此外,你的循环会抛出一个错误,因为你应该在计数后踩下1,而不是上升1,因为列表框从0开始编入索引。这最终会因为列表框尝试访问索引而引发错误不存在。应该阅读:

For iCounter = 0 To lstCustType.Items.Count - 1

答案 1 :(得分:0)

  

sCustType =“成人”或“孩子”或“让步”

使用这样的or运算符,编译器期望按位或2位长度执行。您可能需要创建一组客户类型,然后使用LINQ对项集合进行特定搜索。