2014-01-24 22 views
1

基本上我想要做的是拉出列表框中最常見的值。列表框會有許多不同的隨機生成的數字,它應該拉出最常見的數字並突出顯示它。我無法弄清楚正確的代碼,我嘗試了一切!請幫忙! (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

你可以試試這個:

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中的字符串列表,並通過它們的價值將它們分組,然後下令他們在降通過該項目出現在列表中的次數,然後抓取結果列表中的第一項。

+0

謝謝你,這工作完美! – user3233937