代码之家  ›  专栏  ›  技术社区  ›  LiamGu

将数组作为逗号分隔的列表写入屏幕

  •  0
  • LiamGu  · 技术社区  · 14 年前

    项目1、项目2、项目3、项目4

    尽管我对screen说,因为这是我描述它的最好方式,我实际上是在一些Javascript中把它写到页面上。

    我目前的写作方法如下:

    for each b in theDates
        Response.Write("'" + b.CallDate + "',")
    next
    

    但很明显,这会返回一个字符串 Item 1, Item 2, Item 3, Item 4, .

    有没有一个简单的方法去掉最后一个逗号,还是我完全错了?

    9 回复  |  直到 14 年前
        1
  •  6
  •   Pavel Morshenyuk    14 年前

    你可以用 String.Join 方法。不确定VB,但类似于:

    Response.Write(String.Join(", ", theDates.Select(Function(n) "'" & n.CallDate & "'").ToArray()))
    
        2
  •  6
  •   Douglas    14 年前

    String.Join ( documentation

    var datesInQuotes = theDates.Select(date => "'" + date.CallDate + "'");
    
    Response.Write(String.Join(", ", datesInQuotes));
    
        3
  •  3
  •   Benjol    14 年前

    正如其他人所说,在这种情况下,String.Join就是您想要的。

    最后的 元素和 不附加 一个逗号,或者在 元素和 不预先准备

    dim firstDone as bool = false
    for each b in theDates
        if firstDone then Response.Write (",")
        Response.Write("'" + b.CallDate + "'")
        firstDone = true
    next
    

    请原谅我的生锈)

        4
  •  2
  •   Nordic Mainframe    14 年前

    不需要串。加入这个。

    st="'"
    for each b in theDates
        Response.Write(st + b.CallDate + "'")
        st=", '"
    next
    
        5
  •  0
  •   TheGeekYouNeed    14 年前

    循环遍历日期并将数据放入字符串中。

    myString.Remove(myString.Length-1,1);

    Response.Write(myString)

    旁注:你真的不应该用Response.Write输出到屏幕上。应该将服务器控件的文本设置为输出。标签是很好的。你会注意到,如果你不这样做,你的文本就不会出现在你认为会出现的地方。

        6
  •  0
  •   Kaniu    14 年前

    除第一项外,你可以在每项前面写逗号。

        7
  •  0
  •   Jcei    14 年前

    我建议您按照刚才的操作,然后使用Response.Remove(s.Length-1,1)

        8
  •  0
  •   user240515 ephemerr    14 年前

    for (int i = 0; i < theDates.Length; i++)
    {
        if (i > 0)
        {
            Response.Write(",");
        }
        Response.Write(theDates[i]);
    }
    
        9
  •  0
  •   Mike A.    13 年前

    太复杂了。保持简单

    dim st as string ="'"
    for each b in theDates
       Response.Write(st + b.CallDate + "'")
       st=", '"
    next
    response.write (st.TrimEnd(New Char() {" ", ","})