在字符串中的每个字符之后添加特定字符的优雅方式

Wer*_*ner 3 c# linq string character

我想从数据库中打印一个字符串到一个页面.在此数据库中,字符串如下所示:" !"§%&/".在我的页面中,它应该如下所示:" ! " § % & /"(字符之间的空格).

我知道可以使用简单的foreach循环以及Linq的Aggregate函数.

Foreach循环:

var result = "";
foreach (var s in stringFromDb)
{
    result += s + " ";
}
result = result.Trim()
Run Code Online (Sandbox Code Playgroud)

聚合功能:

var result = stringFromDb.Aggregate("", (current, s) => current + (s + " ")).Trim();
Run Code Online (Sandbox Code Playgroud)

聚合函数有点难以理解,所以我绝对不会使用它.有没有更简单的方法来做到这一点?

Sel*_*enç 9

你为什么不用string.Join

var str = "!\"§%&/";
var result = string.Join(" ", str.ToCharArray())
Run Code Online (Sandbox Code Playgroud)

或者没有ToCharArray(在评论中建议)

 var result = string.Join<char>(" ", str)
Run Code Online (Sandbox Code Playgroud)

  • 从.NET 4开始,你甚至不需要`ToCharArray`:`string.Join <char>("",str)`. (6认同)