【问题标题】:Need help finding common values需要帮助找到共同的价值观
【发布时间】:2014-01-24 23:57:32
【问题描述】:

基本上我想要做的是从列表框中提取最常见的值。列表框将有许多不同的随机生成的数字,它应该拉出最常见的数字并突出显示它。我无法弄清楚正确的代码,我已经尝试了一切!请帮忙! (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。然后更改标签并突出显示列表框中的数字。看不懂。。。

【问题讨论】:

    标签: vb.net listbox label


    【解决方案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 中的字符串列表并按它们的值对它们进行分组,然后按照该项目在列表中出现的次数以降序方式对它们进行排序,然后它会抓取列表中的第一个项目结果列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多