【发布时间】:2009-08-20 09:20:24
【问题描述】:
有没有一种简单的方法可以将字符串数组转换为串联字符串?
例如,我有一个字符串数组:
new string[]{"Apples", "Bananas", "Cherries"};
我想得到一个字符串:
"Apples,Bananas,Cherries"
或"Apples&Bananas&Cherries" 或"Apples\Bananas\Cherries"
【问题讨论】:
有没有一种简单的方法可以将字符串数组转换为串联字符串?
例如,我有一个字符串数组:
new string[]{"Apples", "Bananas", "Cherries"};
我想得到一个字符串:
"Apples,Bananas,Cherries"
或"Apples&Bananas&Cherries" 或"Apples\Bananas\Cherries"
【问题讨论】:
一个简单的...
string[] theArray = new string[]{"Apples", "Bananas", "Cherries"};
string s = string.Join(",",theArray);
【讨论】:
string[],而不适用于任何其他人——因此它不完全适合“常规”数组实现。但您可以将其作为 C# 3.0 扩展方法 添加到 this string[].
Join<T>(this T[] array)扩展方法;-p
显而易见的选择当然是 String.Join 方法。
这是一个 LINQy 替代方案:
string.Concat(fruit.Select((s, i) => (i == 0 ? "" : ",") + s).ToArray())
(因为它与 Join 方法的作用相同,所以并没有真正有用,但可能用于扩展该方法无法到达的地方,例如交替分隔符......)
【讨论】:
你可以使用Aggregate,它在一个序列上应用一个累加器函数。
string[] test = new string[]{"Apples", "Bananas", "Cherries"};
char delemeter = ',';
string joinedString = test.Aggregate((prev, current) => prev + delemeter + current);
【讨论】: