Vb.net 如何仅通过选择并查看标签中的结果来计算列表框中的选定项?

Vb.net 如何仅通过选择并查看标签中的结果来计算列表框中的选定项?,vb.net,Vb.net,获得计数的逻辑很容易,但在实践中有时很难 现在我有一个清单,上面有很多项目。如果重复出现,如何计算这些项目,我想使用FOR循环将其转换为一个数字,因为我知道列表中有多少项目 我尝试了一些代码,但没有成功 ''''''''''''''' ' VB 2015 '''''''''''' Public Class Form1 Private Sub lstWinners_List_SelectedIndexChanged(sender As Object, e As EventArgs) Ha

获得计数的逻辑很容易,但在实践中有时很难

现在我有一个清单,上面有很多项目。如果重复出现,如何计算这些项目,我想使用FOR循环将其转换为一个数字,因为我知道列表中有多少项目

我尝试了一些代码,但没有成功

'''''''''''''''
' VB 2015
''''''''''''
Public Class Form1
    Private Sub lstWinners_List_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstWinners_List.SelectedIndexChanged
        If lstWinners_List.SelectedIndex <> -1 Then

            Dim count As Integer = 0
            Dim strselection As String = lstWinners_List.Items(lstWinners_List.SelectedIndex).ToString
            For i As Integer = 0 To lstWinners_List.Items.Count - 1
                If lstWinners_List.Items(i) = strselection Then
                    count = count + 1
                End If
            Next
            lblOutput.Text = count.ToString
        End If
    End Sub
End Class
“'
'VB 2015
''''''''''''
公开课表格1
私有子lstWinners\u列表\u SelectedIndexChanged(发件人作为对象,e作为事件参数)处理lstWinners\u列表。SelectedIndexChanged
如果lst\u List.SelectedIndex-1,则
Dim计数为整数=0
Dim strselection As String=lstWinners\u List.Items(lstWinners\u List.SelectedIndex).ToString
对于i As Integer=0到lstu List.Items.Count-1
如果LSTU列表项(i)=strselection,则
计数=计数+1
如果结束
下一个
lblOutput.Text=count.ToString
如果结束
端接头
末级
例如: 我想数一数“michigan”这个词在列表中重复了多少次

 Dim count As Integer = 0
        For Each n As String In ListBox1.Items
            If n = "red" Then
                count += 1
            End If
        Next

        lblOutput.Text(count)

像这样的事情你是什么意思?

下面是一个使用吉姆·休伊特评论的例子:

Private Sub lstWinners_List_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstWinners_List.SelectedIndexChanged
    If lstWinners_List.SelectedIndex <> -1 Then
        Dim selection As String = lstWinners_List.Items(lstWinners_List.SelectedIndex).ToString
        Dim wins As Integer = (From team As String In lstWinners_List.Items Where team.Equals(selection)).Count
        lblOutput.Text = wins.ToString
    End If
End Sub
Private Sub lstWinners\u List\u SelectedIndexChanged(发送方作为对象,e作为事件参数)处理lstWinners\u List.SelectedIndexChanged
如果lst\u List.SelectedIndex-1,则
将所选内容设置为字符串=lstWinners\u List.Items(lstWinners\u List.SelectedIndex).ToString
Dim wins As Integer=(来自团队,作为lstWinners\u列表中的字符串,其中team.Equals(selection)).Count
lblOutput.Text=wins.ToString
如果结束
端接头
编辑

下面是一个等效的手动索引for循环:

Private Sub lstWinners_List_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstWinners_List.SelectedIndexChanged
    If lstWinners_List.SelectedIndex <> -1 Then
        Dim count As Integer = 0
        Dim selection As String = lstWinners_List.Items(lstWinners_List.SelectedIndex).ToString
        For i As Integer = 0 To lstWinners_List.Items.Count - 1
            If lstWinners_List.Items(i) = selection Then
                count = count + 1
            End If
        Next
        lblOutput.Text = count.ToString
    End If
End Sub
Private Sub lstWinners\u List\u SelectedIndexChanged(发送方作为对象,e作为事件参数)处理lstWinners\u List.SelectedIndexChanged
如果lst\u List.SelectedIndex-1,则
Dim计数为整数=0
将所选内容设置为字符串=lstWinners\u List.Items(lstWinners\u List.SelectedIndex).ToString
对于i As Integer=0到lstu List.Items.Count-1
如果列表项(i)=选择,则
计数=计数+1
如果结束
下一个
lblOutput.Text=count.ToString
如果结束
端接头

您尝试了哪些内容,哪些内容无效?是否要在
lblOutput
的列表框中显示所选项目的计数?在标签lblOutput中显示是。idk它不允许我在这里发布少于12个单词的内容,LOL去掉
lstWinners\u List.Items.Add()
行。另外,如果你要循环,那么使用我文章中的第二个版本。你将第一种溶液与第二种溶液混合;这是多余的。好的,我现在用的是第二版。我去掉了那条线。但是我在这里有一个错误(**如果我赢了你的名单。项目(i)=选择然后**)是的,如果我只算红色,但是如果我只算名单中的每支球队赢了怎么办。我还在用这个?我应该用IF还是FOR循环?因为总共有102个团队,你应该用它们做什么,确切地说?我的示例显示当前所选内容的计数。你想单独计算列表框中每个条目的总数吗?我想做循环重复,就像我想计算列表中选择的每个条目。例如,“密歇根”一词在列表中重复了很多次。如果我只是选择了这个词,我怎么能数到它。这将适用于列表中的每个项目,即102字,它已经为您循环**并计算所选项目。您的意思是可能有多个选定项目?或者你想写一个手动循环?是的,它已经循环了。。但每次我选择一个项目时,它总是给我总数(102)。我应该用for循环而不是if语句