vb.net - usar - ¿Cómo contar elementos duplicados en ListBox usando Visual Basic 2008?
listbox vb net (1)
Aquí hay una pequeña función que escribí muy rápido para ti. Esto puede usarse en cualquier lugar y todo lo que necesita hacer es pasarle el objeto ListBox
; devolverá una cadena que contiene los artículos y sus conteos. Puede cambiar esto también para devolver el Dictionary
si lo desea en lugar de una cadena si planea necesitar los valores y tal.
'''''' <summary>
'''''' Return''s a string containing each item and their count
'''''' </summary>
'''''' <param name="lBox"></param>
'''''' <returns></returns>
'''''' <remarks></remarks>
Public Shared Function ReturnDuplicateListBoxItems(ByVal lBox As System.Windows.Forms.ListBox) As String
Dim strReturn As New System.Text.StringBuilder
Dim lItems As New Dictionary(Of String, Integer)
Dim intCount As Integer = 0
Dim strCurrentItem As String = String.Empty
Try
''Loop through listbox grabbing items...
For Each nItem As String In lBox.Items
If Not (lItems.ContainsKey(nItem)) Then ''Add listbox item to dictionary if not in there...
''The current item we are looking at...
strCurrentItem = nItem
''Check how many occurances of this items there are in the referenced listbox...
For Each sItem As String In lBox.Items
If sItem.Equals(strCurrentItem) Then ''We have a match add to the count...
intCount += 1
End If
Next
''Finally add the item to the dictionary with the items count...
lItems.Add(nItem, intCount)
''Reset intCount for next item... and strCurrentItem
intCount = 0
strCurrentItem = String.Empty
End If
Next
''Add to the string builder...
For i As Integer = 0 To lItems.Count - 1
strReturn.AppendLine(lItems.Keys(i).ToString & " - " & lItems.Values(i).ToString)
Next
Catch ex As Exception
Return strReturn.ToString
End Try
Return strReturn.ToString
End Function
Cómo usar el ejemplo . MessageBox
un MessageBox
para esto ...
MessageBox.Show(ReturnDuplicateListBoxItems(YOUR LISTBOX NAME HERE))
Quiero contar elementos duplicados en mi ListBox.
Ex. Tengo esto en mi List Box.
Chocolate
Mango
Melón
Chocolate
Chocolate
fresa
Chocolate
fresa
Lo que quiero es tener esta salida.
Chocolate - 4
Fresa - 2
Mango - 1
Melón -1