假设我有一个字符串集合:
"foo" "bar" "xyz"
我想从列表中生成一个逗号分隔的值,如下所示:
"foo,bar,xyz"
注意到最后没有“,”.
我知道有几十种方法来产生这个:
>使用for-loop和string.Format()或StringBuilder.
>使用整数计数器并删除结尾“,”如果值为> 0
>不要放“,”在第一次运行
>等
我现在的示例代码:
if (strs.Count() > 0) { var sb = new StringBuilder(); foreach (var str in strs) sb.AppendFormat("{0},",str); return sb.Remove(0,2).ToString(); }
对于上述情况,什么是高度可重用的最佳代码,为什么?
解决方法
String.Join是正确的答案,但是在IEnumerable的情况下,Linq通常比for循环更短:
someStringCollection.Aggregate((first,second) => first + "," + second);