Vb.net 从列表到带格式的字符串

Vb.net 从列表到带格式的字符串,vb.net,Vb.net,我有一个函数getSelectedNumbers,它将3个数字列表作为输入。在一次操作之后,我需要获得一个格式为的字符串 “[1_3,10,20,30500],[1_1,2],” 如果列表为空,我需要在字符串中包含“[]”字符 我写了下面的函数,但我需要管理空的案例 根据Anu6is的评论: 我能够重写我的代码如下 ''vb ''' 现在我的问题是有更好的方法来生成列表1列表2列表3?这对您有用吗 Dim selectedNumbers1 As New List(Of Integer)

我有一个函数getSelectedNumbers,它将3个数字列表作为输入。在一次操作之后,我需要获得一个格式为的字符串

“[1_3,10,20,30500],[1_1,2],”

如果列表为空,我需要在字符串中包含“[]”字符

我写了下面的函数,但我需要管理空的案例

根据Anu6is的评论: 我能够重写我的代码如下

''vb

'''


现在我的问题是有更好的方法来生成列表1列表2列表3?

这对您有用吗

    Dim selectedNumbers1 As New List(Of Integer) From {20, 30, 500, 10, 3}
    Dim selectedNumbers2 As New List(Of Integer) From {1, 2, 500}
    Dim selectedNumbers3 As New List(Of Integer)

    'either make 3 loops or 1, but you have to make a list of lists first
    Dim selectedNumbersList As New List(Of List(Of Integer)) From {selectedNumbers1, selectedNumbers2, selectedNumbers3}

    For Each listX In selectedNumbersList
        listX.Sort()
        Dim ReturnString As String = "["
        If listX.Count > 0 Then
            For Each itemvalue In listX
                ReturnString &= itemvalue & ","
            Next
            ReturnString = ReturnString.Remove(ReturnString.Length - 1)
        End If
        ReturnString &= "]"
        Debug.Print(ReturnString)
    Next

'[3,10,20,30,500]
'[1,2,500]
'[]

这是假设元素只是一个整数

公共函数getSelectedNumbers()作为字符串
Dim从{20,30,500,10,3}无序列表中选择数字1作为新列表(整数)
Dim从{1,2500}有序列表中选择NumberS2作为新列表(整数)
Dim选择数字3作为新列表(整数的)“空列表”
将{selectedNumbers1,selectedNumbers2,selectedNumbers3}中的selectedNumbersList作为新列表(整数列表的列表))进行Dim
Dim builder作为用于生成输出的新StringBuilder
对于SelectedNumbers列表中的每个列表
list.Sort()'对列表进行排序
builder.Append(“[”).Append(String.Join(“,”,list)).Append(“],”)String.Join()为您提供一个逗号分隔的字符串
下一个
Return builder.ToString.TrimEnd(,“c)”删除最后一个逗号(,)并返回格式化字符串
端函数

[3,10,20,30500],[1,2500],][

我不明白为什么可以在一个简单的循环中完成,却要把它复杂化这么多。一个循环?如何管理不同大小的列表?我发布了答案,你也可以编辑问题,因此,在执行调用的循环之前。按列表排序以便获得升序值。
元素究竟是什么?
是否始终只是一个
整数
?元素是具有innerText属性的n Div对象?我需要它,但我需要进行更改,因为正确的输出格式是“[1_3,10,20,30500],[1_1,2500]。”
    Dim selectedNumbers1 As New List(Of Integer) From {20, 30, 500, 10, 3}
    Dim selectedNumbers2 As New List(Of Integer) From {1, 2, 500}
    Dim selectedNumbers3 As New List(Of Integer)

    'either make 3 loops or 1, but you have to make a list of lists first
    Dim selectedNumbersList As New List(Of List(Of Integer)) From {selectedNumbers1, selectedNumbers2, selectedNumbers3}

    For Each listX In selectedNumbersList
        listX.Sort()
        Dim ReturnString As String = "["
        If listX.Count > 0 Then
            For Each itemvalue In listX
                ReturnString &= itemvalue & ","
            Next
            ReturnString = ReturnString.Remove(ReturnString.Length - 1)
        End If
        ReturnString &= "]"
        Debug.Print(ReturnString)
    Next

'[3,10,20,30,500]
'[1,2,500]
'[]