2014-01-22 59 views
0

我已經瀏覽了幾個小時的互聯網,發現沒有什麼可以幫助我認爲是非常常見的情況。VB.net計數列表框中特定項目的倍數

我想計算我的列表框中的特定項目,並找出每個項目有多少個。我想將這個值賦給一個變量。我想我已經涵蓋了大部分內容,但是我無法讓代碼工作。

爲了解釋我想要的東西在哪裏,它包括我在列表中有多少'大蒜麪包',然後將它分配給像'item1'這樣的變量,以此類推。

乾杯

+2

你介意張貼代碼? – Pietu1998

+0

您不需要GUI控件,使用List(Of String)來計算項目實例。您可能希望將過濾後的結果發佈到ListBox或其他內容。 – Plutonix

回答

0
Public Class MyListItem 
    Public Sub New(id As Integer, name As String) 
     LiId = id 
     LiName = name 
    End Sub 

    Public LiId As Integer 
    Public LiName As String 
End Class 

Private Sub Test() 
    Dim listbox2 As New ListBox() 

    Dim list As New List(Of MyListItem)() 
    list.Add(New MyListItem(1, "a")) 
    list.Add(New MyListItem(2, "a")) 
    list.Add(New MyListItem(3, "b")) 
    list.Add(New MyListItem(4, "c")) 
    listbox2.DataSource = list 
    listbox2.ValueMember = "LiId" 
    listbox2.DisplayMember = "LiName" 

    Dim countOfA = Aggregate itm In DirectCast(listbox2.DataSource, List(Of MyListItem)) 
      Where itm.LiName = "a" 
      Into Sum(1) 


End Sub 

結果:countOfA = 2

+0

嗨,感謝代碼,我會投票它,但我不夠高的水平:(是否有可能你可以解釋'mylistitem'部分的代碼,因爲我不太確定我是否應該將它重命名爲我想要在列表中的項目,因爲VB說他們沒有正確定義?乾杯 – user3212628

+0

當你說'List.Items.Add',它需要對象。因此,當你做'... Add(myString) ''你的對象是字符串,你可以做到這一點,或者你可以添加你的自定義對象,它有很多屬性,或者,如果你已經準備好收集項目,你可以設置這個集合爲數據源並標記哪個屬性是值並顯示出來,WinForms會負責顯示它,在這個例子中(並且它正在工作)我展示瞭如何使用自定義對象的集合來填充列表,如何檢索它,以及如何聚合單個組並獲得計數 –