用字符串生成器连接字符串?

时间:2018-09-03 13:25:32

标签: c#

我想生成一个格式为

的字符串

'abc','avc',abc','avc',abc','avc','abc','avc',abc','avc',abc','avc', 'abc','avc'

该值可以是任何值,也可以为空。这是我的代码

ionViewDidEnter() {
    this.content.scrollToBottom();
    this.observingChat(this);
  }

这使我回到

abc,''abc,''abc,''abc,''abc,''abc,''abc,''abc,''abc,''abc,''abc,'' abc,''abc,''abc,''abc

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

当然,使用Linq会更简单且更具可读性,但是如果您想知道代码中出了什么问题,那么

// Start with the initial quote
string sep = "'";
StringBuilder sb = new StringBuilder();
foreach(var l in label.Rows)
{
    sb.Append(sep).Append(l.Text);
    // Quote before and after the comma
    sep = "','";
}
// You need an additional quote to close the string if there is any
if(sb.Length > 0)
   sb.Append("'");

还要考虑StringBuilder并不总是比简单的串联更快。如果此代码对性能敏感,那么我将尝试衡量如果使用单个 sb.Append(sep + l.Text)而不是调用两次Append方法

会发生什么情况

答案 1 :(得分:3)

使用LinQ和method Join

更简单
string s = string.Join(",", label.Rows.Select(l => $"'{l.Text}'"));