需要帮助找到共同的价值观

时间:2014-01-24 23:57:32

标签: vb.net listbox label

基本上我要做的就是从列表框中提取最常用的值。列表框将有许多不同的随机生成的数字,它应该拉出最常见的数字并突出显示它。我无法弄清楚正确的代码,我已经尝试了一切!请帮忙! (vb.net)

Private Sub Check()

    If ListBox1.Items.IndexOf("1") > ListBox1.Items.IndexOf("2") Then

        Label7.Text = "1"
        ListBox1.SelectedItem = ("1")
    Else
        Label7.Text = "2"
        ListBox1.SelectedItem = ("2")

    End If
End Sub

在上面的示例中,它应检查哪个值最常见,1或2.然后更改标签并突出显示列表框中的数字。我不能得到它......

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

Dim foundMost As String = ListBox1.Items.Cast(Of String) _
                                        .GroupBy(Function(x) x) _
                                        .OrderByDescending(Function(y) y.Count) _
                                        .First.Key

Label7.Text = foundMost
ListBox1.SelectedIndices.Clear()
For i As Integer = 0 To ListBox1.Items.Count - 1
  If ListBox1.Items(i) = foundMost Then
    ListBox1.SelectedIndices.Add(i)
  End If
Next

上面的LINQ语句是通过ListBox中的字符串列表并按它们的值对它们进行分组,然后它按照该项目出现在列表中的次数以递减方式对它们进行排序,然后它抓取该列表中的第一项。结果清单。