现在它似乎是一个非常简单的问题而且我可能只是很厚,但我想要实现的基本上是按以下格式打印一个数组:
第1项,第2项,第3项,第4项
虽然我说屏幕,因为这是我描述它的最佳方式,但我实际上是将它写入一些Javascript中的页面。
我目前正在编写的方式如下:
for each b in theDates
Response.Write("'" + b.CallDate + "',")
next
但显然会返回一个Item 1, Item 2, Item 3, Item 4,
字符串。
有没有一种简单的方法可以摆脱最后一个逗号或我是否完全错误?
答案 0 :(得分:6)
尝试String.Join
(documentation)。我的VB很生疏,但希望你能读到这个C#:
var datesInQuotes = theDates.Select(date => "'" + date.CallDate + "'");
Response.Write(String.Join(", ", datesInQuotes));
答案 1 :(得分:6)
您可以使用String.Join方法。不确定VB,但有类似的东西:
Response.Write(String.Join(", ", theDates.Select(Function(n) "'" & n.CallDate & "'").ToArray()))
答案 2 :(得分:3)
正如其他人所说,String.Join就是你想要的。
更一般地说:你必须检测你何时在最后元素并且没有附加逗号,或者检测你何时在第一个元素,不添加逗号。
通常情况下,当您处于第一时间时更容易检测到,所以:
dim firstDone as bool = false
for each b in theDates
if firstDone then Response.Write (",")
Response.Write("'" + b.CallDate + "'")
firstDone = true
next
(请原谅我生锈的vb)
答案 3 :(得分:2)
没有必要使用String.join。
st="'"
for each b in theDates
Response.Write(st + b.CallDate + "'")
st=", '"
next
答案 4 :(得分:0)
不,你没错 - 完全。
遍历日期并将数据放入字符串中。
完成循环后,删除最后一个逗号:
myString.Remove(myString.Length - 1,1);
回复于(myString的)
附注:你真的不应该用Response.Write输出到屏幕。您应该将服务器控件的文本设置为输出。标签非常好。您会注意到,如果不这样做,您的文本将不会出现在您认为的位置。
答案 5 :(得分:0)
除了第一个项目之外,您可以在每个项目前写下逗号。
答案 6 :(得分:0)
我建议您按照自己的意愿行事,然后使用Response.Remove(s.Length-1,1)
答案 7 :(得分:0)
在C#中:
for (int i = 0; i < theDates.Length; i++)
{
if (i > 0)
{
Response.Write(",");
}
Response.Write(theDates[i]);
}
答案 8 :(得分:0)
dim st as string ="'"
for each b in theDates
Response.Write(st + b.CallDate + "'")
st=", '"
next
response.write (st.TrimEnd(New Char() {" ", ","})