c# - 合并字符串的最佳方法是什么?

标签 c# string coding-style

假设我有一个带有如下字符串的 foreach 循环:

String newStr='';
String str='a b c d e';
foreach(String strChar in str.split(' ')) {
  newStr+=strChar+',';
}

结果会是这样的:a,b,c,d,e, 但我想要的是 a,b,c,d,e 没有最后一个逗号。我通常把最后一个逗号分开,但这看起来很难看而且超重。有什么轻量级的方法可以做到这一点吗?

这个问题的补充:是否有任何简单的解决方案可以将“and”添加到结果类似于:用户输出的 a、b、c、d 和 e

p.s.: 我知道我可以在示例中使用替换方法,但这不是我想要的,因为在大多数情况下你不能使用它(例如当你构建一个 sql 字符串时)。

最佳答案

我会使用string.Join:

string newStr = string.Join(",", str.Split(' '));

或者,您可以在循环体的开始处添加分隔符,但不是在第一轮。

如果您想继续手动执行此操作,我建议您使用 StringBuilder。事实上,使用 StringBuilder,您可以无条件地附加分隔符,然后减少末尾的长度以修剪那一端。

您还写道:

for example when you build a sql string

构建这样的 SQL 字符串很少是个好主意。特别是,您应该绝对在此处使用用户输入的字符串 - 请改用参数化 SQL。构建 SQL 通常是 ORM 代码的领域...在这种情况下,使用现有的 ORM 通常比自己动手更好 :)

关于c# - 合并字符串的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14876489/

相关文章:

c# - 是否有任何预先存在的可枚举扩展使其 NullReferenceException 安全?

regex - sed,在第一个数字之前插入空格,但前提是不存在空格

c - 如何删除C中字符串中的空格?

c# - 如何在保持原始顺序的文本中出现第一个字符?

formatting - Sublime Text 3 中的 80 个字符/右边距线

c# - 序列化反序列化匿名子 JSON 属性以建模

c# - 无法将相同代码的两个版本检入 TFS

c# - 无法让 ApiVersion 在 Web Api C# 中工作

coding-style - 关于变量/函数命名约定的思考

java - Android 什么是命名也执行逻辑的 boolean 函数的最佳方式?