C# 用字符串生成器连接字符串?
我想生成一个格式为的字符串 ‘abc’、‘avc’、‘abc’、‘avc’、‘abc’、‘avc’、‘avc’、‘abc’、‘avc’、‘abc’、‘avc’、‘abc’、‘avc’、‘avc’ 值可以是任意值,也可以是空的。这是我的代码C# 用字符串生成器连接字符串?,c#,C#,我想生成一个格式为的字符串 ‘abc’、‘avc’、‘abc’、‘avc’、‘abc’、‘avc’、‘avc’、‘abc’、‘avc’、‘abc’、‘avc’、‘abc’、‘avc’、‘avc’ 值可以是任意值,也可以是空的。这是我的代码 string sep = ""; StringBuilder sb = new StringBuilder(); foreach(var l in label.Rows) {
string sep = "";
StringBuilder sb = new StringBuilder();
foreach(var l in label.Rows)
{
sb.Append(sep).Append(l.Text);
sep = ",''";
}
这是我的回报
abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc,abc
任何帮助都将不胜感激 使用LinQ和Join更简单
当然,使用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.Appendsep+l.Text而不是两次调用Append方法会发生什么情况,那么该代码会出现什么问题?您真的希望字符串以开头吗?我想我无法生成逻辑逻辑是什么?@Magnus它没有t@J.vanLangen没有abc',avc',abc。。。。。。
// 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("'");