2016-06-05 3 views
0

Мне нужно сгруппировать, говорит 5 элементов listbox1 и конвертирует их в строку для добавления в listbox2. Вот код, который я до сих пор:Как группировать элементы списка «x» и добавлять в другой список?

dim s as string="" 'a string to collect listbox1 items 
dim count as integer=Listbox1.items.count 

    Do While count > 0 
     Select Case count 

      Case Is <= 5 
       For i = 0 To ListBox1.Items.Count - 1 
        s &= ListBox1.Items.Item(i).ToString 
        ListBox1.Items.RemoveAt(i) 
       Next 
       ListBox2.Items.Add(s) 
       Exit Do 'If there are <=5 items, then done , exit loop 

      Case Is > 5 
       For i = 0 To 4 
        s &= ListBox1.Items.Item(i).ToString 
        ListBox1.Items.RemoveAt(i) 'delete each item in listbox1, after add 
       Next 
       ListBox2.Items.Add(s) 
       s = "" ' Reset the s string to receive new items 
       count = count - 5 'reduce count and loop over again 
       End Select 
Loop 

Каким-то образом, я мог бы группа почти элементы в listbox1 в группах 5 и добавить к Listbox2, однако существуют некоторые оставили в ListBox1 после Loop (я вижу, если У меня 8 предметов, тогда 3 осталось). Не могли бы вы, ребята, показать мне, где я ошибался в коде выше?

Большое спасибо ~

ответ

1

Я думаю, что ваш алгоритм является слишком сложным, ниже, как я бы подойти к нему.

Надеется, что это помогает Graham

' 
    ' Move items from ListBox1 to ListBox2 
    ' 
    Dim s As String = "" 
    For count As Integer = 0 To ListBox1.Items.Count - 1 


     ' update every 5 

     If (count Mod 5 = 0) Then 

      ' Only update if not the first time 
      If (count <> 0) Then 
       ListBox2.Items.Add(s) 
       s = "" 
      End If 
     End If 
     s = s + ListBox1.Items.Item(count).ToString 

    Next 

    ' 
    ' Add the last ones 
    ' 

    If (s <> "") Then 
     ListBox2.Items.Add(s) 
    End If 

    ' 
    ' Clear down listbox 1 
    ' 
    ListBox1.Items.Clear() 
+0

Вы сделали это так просто и аккуратно, @Graham. Спасибо за ваше решение ~ –

Смежные вопросы