【问题标题】:How can I add a characters at the end and at the beginning of a string list?如何在字符串列表的末尾和开头添加字符?
【发布时间】:2016-03-28 14:53:28
【问题描述】:

我有一个包含这些列表字符串的数组:

a -- b -- c 
d -- e -- f
g -- h -- i

我想得到这个:

(a,b,c) , (d,e,f), (g,h,i)

这是我的代码:

'I iterate through the entire list to create the string
Dim valueChain As String = ""
Dim lista As New List(Of String)
For Each item In MyArrayList
    For Each subitem In item
        valueChain += subitem.ToString + " ,"
    Next

    ' I remove the last ,
    valueChain = valueChain.TrimEnd(",")
    valueChain = "(" + valueChain + ") ,"

Next

lista.Add(valueChain)

但我明白了:

(((a,b,c),d,e,f),g,h,i),

我怎样才能得到这个? :

(a,b,c) , (d,e,f), (g,h,i)

【问题讨论】:

    标签: asp.net vb.net arraylist webforms


    【解决方案1】:

    您只添加了一次价值链。而是尝试在第一个循环中添加它并在此之后清理 valueChain。

         Dim lista As New List(Of String)
              For Each item In MyArrayList
                    Dim valueChain As String = ""
    
                    For Each subitem In item
                        valueChain += subitem.ToString + ","
                    Next
    
                    valueChain = valueChain.TrimEnd(",")
                    valueChain = "(" + valueChain + ")"
    
                    lista.Add(valueChain)
                Next
    

    您将在lista 中获得 3 件商品。

    【讨论】:

    • 感谢您的帮助。
    【解决方案2】:

    首先,我建议您使用 & 号 (&) 连接运算符而不是加号 (+),因为 & 号专门用于此目的。

    现在到您的代码。如果你希望它像你写的那样紧凑,你应该在添加子项时删除空格:

    valueChain &= subitem.ToString & ","
    

    请注意,如果 ToString 已经是 String 的数组,则不需要。

    然后,您继续在您的链之前添加一个括号 (,以便通过您的主数组进行每次迭代。您应该在开始迭代子项目之前附加括号,然后在此之后附加右括号:

    For Each item In MyArrayList
        'Append the opening bracket.
    valueChain &= "("
        For Each subitem In item
            valueChain &= subitem.ToString & ","
        Next
    
        'Remove the last comma
        valueChain = valueChain.TrimEnd(",")
    
        'Append the closing bracket and the comma.
        valueChain &= "), "
    Next
    
    'Remove the last comma and space.
    valueChain = valueChain.TrimEnd(", ")
    
    lista.Add(valueChain)
    

    希望这会有所帮助!

    【讨论】:

    • 你的代码给了我这个结果:(a,b,c(d,e,f(g,h,i
    • @Esraa_92:真的吗?好吧,我还没有测试过,所以我想我会的。但它应该添加右括号。
    【解决方案3】:

    我添加这个:

    Dim lista As New List(Of String)
              For Each item In MyArrayList
                    Dim valueChain As String = ""
    
                    For Each subitem In item
                        valueChain += subitem.ToString + ","
                    Next
    
                    valueChain = valueChain.TrimEnd(",")
                    valueChain = "(" + valueChain + ")"
    
                    lista.Add(valueChain)
                Next
    

    然后添加这个来创建字符串:

    Dim char As String = ""
                For i As Integer = 0 To lista.Count - 1
                    char+= lista(i) + " ,"
                Next
    
                'I remove the last ,
                char= char.TrimEnd(",")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      相关资源
      最近更新 更多