使用附加串联将字符串数组转换为逗号分隔字符串

Red*_*ddy 8 c# linq string concatenation comma

有没有办法将字符串列表转换为逗号分隔的字符串?

String[] data = new String[] { "test", "abc", "123" }
Run Code Online (Sandbox Code Playgroud)

转换成:

'test', 'abc', '123'
Run Code Online (Sandbox Code Playgroud)

可能的解决方案:

  1. 将每个字符串包围'',然后String.join在列表中使用.
  2. Foreach列表中的每个字符串,并做的串联''和','并在年底最后删除','

是否有任何简单的Linq(一行表达式)可以做到这两点?

Mer*_*ham 21

是否有任何简单的Linq(一行表达式)可以做到这两点.

string.Join(",", data.Select(item => "'" + item + "'"))
Run Code Online (Sandbox Code Playgroud)

Linq的基础知识:变形是Select陈述.过滤器是Where声明.

也就是说,有很多可用的字符串操作工具不是Linq,而且它们更有可能针对字符串进行优化,因此在寻找Linq之前我总是会关注它们.

  • 我链接到另一个现在删除的问题 - http://stackoverflow.com/a/33471600/232593 - 我认为他们的代码可能比我的代码有更好的性能,即使它不使用Linq.`return"'"+ string.Join("','",data)+"'";` (2认同)
  • @AsadSaeeduddin - 如果你想取消删除你的答案,我知道我会亲自支持它,即使没有找到任何Linq. (2认同)
  • 我也觉得到处使用linq并不好.当你从里面看linq方法时,你会发现你在程序中弄得一团糟只是为了做一个简单的计数! (2认同)
  • @ M.kazemAkhgary对于可读性和过早优化有一些东西可以说,但我同意你的看法,能够理解并做出这些权衡是好的.我打电话给他们是因为我希望人们意识到需要做出权衡. (2认同)