2013-09-28 37 views
1

我想將多個數組放入單個列表框中。以下是代碼。當我將每個輸出放入自己的列表框時它運行良好,但我試圖將它們全部放在一個帶有當前標題的列表框中。有人可以幫忙嗎?最後一件事,我也想重複的值進入另一列,但不知道如何。我能由於只是消除重複如果你想多列listbox你最好還是選擇listview(想和超越,並顯示數字被淘汰的)將多個數組放入一個列表框

Public Class Form1 
    Dim randomNum As New Random() 
    Dim SampleArray(19) As Integer 
    Dim aryNums() As Integer = SampleArray 
    Dim distinctNums = SampleArray.Distinct() 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     ListBox1.Items.Clear() 
     ListBox2.Items.Clear() 
     ListBox3.Items.Clear() 

     For i = 0 To 19 
      SampleArray(i) = randomNum.Next(10, 100) 
      ListBox1.Items.Add(SampleArray(i).ToString) 
     Next 
     Array.Sort(SampleArray) 
     For i = 0 To SampleArray.GetUpperBound(0) 
      ListBox2.Items.Add(SampleArray(i)) 
     Next 
     For Each num In distinctNums 
      ListBox3.Items.Add(num.ToString()) 
     Next 
    End Sub 

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
     ListBox4.Items.Add("Index" & vbTab & "Random" & vbTab & "Sorted" & vbTab & "Unique") 
     For i = 0 To 19 
      SampleArray(i) = randomNum.Next(10, 100) 
      ListBox4.Items.Add(i & vbTab & SampleArray(i).ToString) 
      'ListBox4.Items.Add(SampleArray(i).ToString) 
     Next 
     Array.Sort(SampleArray) 
     For i = 0 To SampleArray.GetUpperBound(0) 
      ListBox4.Items.Add(vbTab & vbTab & SampleArray(i)) 
     Next 
     For Each num In distinctNums 
      ListBox4.Items.Add(vbTab & vbTab & vbTab & num.ToString()) 
     Next 

    End Sub 
End Class 
+0

請將其格式化爲實際可讀的內容。 – nhgrif

+0

這裏是整個代碼 –

+0

你可能會更好地處理所有事情,而不是在列表框中進行多次傳遞。處理數組,創建結果字符串,可能將其存儲在List(Of String)中,然後將結果發佈到列表框中。另外,你的第二個循環發佈'SampleArray(i)',它似乎缺少'.ToString'。 – Plutonix

回答

0

雖然一個ListView是更容易和更中肯它不是很難過做一個列表框。這裏有一種方法:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    ListBox4.Items.Clear() 
    ListBox4.Items.Add("Index" & vbTab & "Random" & vbTab & "Sorted" & vbTab & "Unique" & vbTab & "Duplicates") 
    For i = 0 To SampleArray.Count - 1 
     SampleArray(i) = randomNum.Next(10, 100) 
     ListBox4.Items.Add(i & vbTab & SampleArray(i).ToString) 
     'ListBox4.Items.Add(SampleArray(i).ToString) 
    Next 
    Array.Sort(SampleArray) 
    Dim distinctNums() As Integer = SampleArray.Distinct().ToArray 
    For i = 0 To SampleArray.Count - 1 
     ListBox4.Items(i + 1) = DirectCast(ListBox4.Items(i + 1), String) & vbTab & SampleArray(i).ToString 
    Next 
    For i = 0 To distinctNums.Count - 1 
     ListBox4.Items(i + 1) = DirectCast(ListBox4.Items(i + 1), String) & vbTab & distinctNums(i).ToString() 
    Next 

    For i = 0 To SampleArray.Count - 2 
     If SampleArray(i) = SampleArray(i + 1) Then 
      ListBox4.Items(i + 1) = DirectCast(ListBox4.Items(i + 1), String) & vbTab & SampleArray(i).ToString() 
     End If 
    Next 
End Sub 
0

。將它設置爲顯示網格,添加頁眉:

ListView1.Columns.Add("header1", 80) 
ListView1.Columns.Add("header2", 120) 

爲了您共同名單,僞代碼:

dim myList as List(of string) = new List(of string) 
for each item in array1 
    myList.Add(item) 
next 
for each item in array2 
    myList.Add(item) 
next 
..... 
' sort if necessary 

for each item in myList 
    dim isDuplicate as Boolean = FindIfDup(item) ' In this method iterate listview to see if the item exists 
    ListView1.Items.Add(new String(){item, iif(isDuplicate, "Duplicate", "")}) 
next