使用已定义的分隔符将字符串数组转换为字符串

ehh*_*ehh 1 .net c# linq string

我有以下代码:

var days = new string[] { "1", "2", "3", "4" });
Run Code Online (Sandbox Code Playgroud)

我需要将天数转换为字符串,如下所示:

string daysConverted = "'1','2','3','4'";
Run Code Online (Sandbox Code Playgroud)

我尝试使用string.Join:

var daysConverted = string.Join("','", days); 
Run Code Online (Sandbox Code Playgroud)

但我得到了:

"1','2','3','4"  // missing quotes at the beginning and at the end. 
Run Code Online (Sandbox Code Playgroud)

我可以在两边连接一个引用,但我想知道是否有任何语法可以一次性完成.

Him*_*ere 6

您必须在结尾添加它并开始,因为它Join只会组合两个字符串.说到这一点,当你"1"和你的"2"一个表达者结合使用时,只需两个元素之间添加分隔符.','"1','2"

截至MSDN:

使用每个元素之间的指定分隔符连接字符串数组的所有元素.

最后,下面的解决方案在内存和速度方面似乎是最好的,因为你有少量的字符串连接(两个用于开始和结束,一个用于每个元素 - > 2 + n).

var daysConverted = "'" + string.Join("','", days) + "'"; 
Run Code Online (Sandbox Code Playgroud)


Dom*_*see 6

你应该'在加入之前将字符串包装起来:

var result = String.Join(",", days.Select(s => "'" + s + "'"));
Run Code Online (Sandbox Code Playgroud)

  • @ehh数组实现了IEnumerable,并在其上定义了Linq扩展方法,所以它应该是.你是否包含命名空间`System.Linq`? (4认同)
  • 你刚刚以这种方式增加了字符串连接的数量...... :-( (3认同)
  • @ehh你的问题是得到任何其他方式来获得所需的输出而不是最好的方式,所以Domysee给了你正确的答案.接受的答案仍然是你说你不想要的答案.对于您的问题,这可能是最好但不正确的答案. (2认同)