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

时间:2016-02-01 19:59:53

标签: c# string concatenation

我有一组源字符串,我希望将它们连接成一个目标字符串。

源集合如下所示:

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

我希望输出字符串为:

abc

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

a-b-c

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

[a]-[b]-[c]

空的源集合应该产生一个空字符串。我该怎么做呢?

1 个答案:

答案 0 :(得分:6)

您可以使用static String.Join() method

执行此操作

它的基本用法是这样的:

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);

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

最后,为了封闭或修改源集合中的每个项目,您可以使用Linq's Select() method投影:

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]"