如何对“x”列表框项目进行分组并添加到另一个列表框?

Posted

技术标签:

【中文标题】如何对“x”列表框项目进行分组并添加到另一个列表框?【英文标题】:How to group "x" listbox items and add to another listbox? 【发布时间】:2016-06-05 07:16:20 【问题描述】:

我必须对 listbox1 的 5 项进行分组,然后将它们转换为字符串以添加到 listbox2。这是我到目前为止的代码:

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 中还剩下一些(我看看我是否有 8 个项目,然后剩下 3 个)。你们能告诉我上面的代码哪里错了吗?

非常感谢~

【问题讨论】:

【参考方案1】:

我认为你的算法太复杂了,下面是我的处理方法。

希望这会有所帮助 格雷厄姆

    '
    ' 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()

【讨论】:

你让它变得如此简单和整洁,@Graham。谢谢你的解决方案~

以上是关于如何对“x”列表框项目进行分组并添加到另一个列表框?的主要内容,如果未能解决你的问题,请参考以下文章

PySimpleGui:如何将值从一个列表框添加到另一个列表框

如何按列对数据框进行分组?

如何按列对pyspark中的数据框进行分组并以该列作为键并以记录列表作为其值来获取字典?

按列表列中的元素对 Pandas 数据框进行分组

VBA - Excel列表框 - 在向第二个列表框添加项目时查找重复项

Pandas:如何按一组序数值对数据框进行分组?