将字符串集合连接成一个带分隔符和封闭字符的字符串

我有一组源字符串,我希望连接到一个目标字符串。

源集合如下所示:

{ "a", "b", "c" } 

我希望输出字符串是:

 abc 

但有时,我也想要一个分隔符。 所以对于相同的输入,现在输出是:

 abc 

最后,输入有时需要包含在其他字符中,在本例中为[] ,导致输出为:

 [a]-[b]-[c] 

空源集合应该产生一个空字符串。 我怎么会这样呢?

您可以使用静态String.Join()方法执行此操作。

它的基本用法是这样的:

 string[] sourceData = new[] { "a", "b", "c" }; string separator = ""; var result = string.Join(separator, sourceData); 

当您提供空分隔符时,传递的值将简单地连接到: "abc"

要使用特定字符串分隔源数据,请提供所需的值作为第一个参数:

 string[] sourceData = new[] { "a", "b", "c" }; string separator = "-"; var result = string.Join(separator, sourceData); 

现在,字符串"-"将插入源数据中的每个项目之间: "abc"

最后,为了封装或修改源集合中的每个项目,您可以使用Linq的Select()方法进行投影:

 string[] sourceData = new[] { "a", "b", "c" }; string separator = "-"; result = String.Join(separator, sourceData.Select(s => "[" + s + "]")); 

而不是"[" + s + "]"你最好使用String.Format()来提高可读性和修改的容易性: String.Format("[{0}]", s)

无论哪种方式,这也会返回所需的结果: "[a]-[b]-[c]"