我有一组源字符串,我希望将它们连接成一个目标字符串。
源集合如下所示:
{ "a", "b", "c" }
我希望输出字符串为:
abc
但有时,我也想要一个分隔符。所以对于相同的输入,现在输出是:
a-b-c
最后,输入有时需要包含在其他字符中,在本例中为[]
,导致输出为:
[a]-[b]-[c]
空的源集合应该产生一个空字符串。我该怎么做呢?
答案 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]"
。