我有一个源字符串的集合,我希望将它们连接成一个目标字符串。
源集合如下所示:
{ "a", "b", "c" }
我希望输出字符串为:
abc
但有时,我也想要一个分隔符。因此,对于相同的输入,现在输出为:
a-b-c
最后,输入有时需要用其他字符括起来,在本例中为 []
,导致输出为:
[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);
现在,字符串"-"
将插入源数据中的每个项目之间:"a-b-c"
。
最后,若要将源集合中的每个项括起来或修改,可以使用 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]"
。