为了把数组通过“,”号拼接起来,以前会用Linq.Aggregate,拼接很简单,但是后来发现运行效率很低,于是就有以下2中种方式:
1、for or foreach
就是比较麻烦,需要手动实现这些过程。但是效率高,接近string.Join,ps:记得用StringBuilder.
2、string.Join
使用简单,效率最高。
public static string Join(string separator, IEnumerable<string> values)
{
if (values == null)
throw new ArgumentNullException(nameof (values));
using (IEnumerator<string> enumerator = values.GetEnumerator())
{
if (!enumerator.MoveNext())
return string.Empty;
string current = enumerator.Current;
if (!enumerator.MoveNext())
return current ?? string.Empty;
StringBuilder sb = StringBuilderCache.Acquire(16);
sb.Append(current);
do
{
sb.Append(separator);
sb.Append(enumerator.Current);
}
while (enumerator.MoveNext());
return StringBuilderCache.GetStringAndRelease(sb);
}
}
3、Linq.Aggregate
使用简单,但是效率最最低,耗时特别高。
以下是对比时间,10W条数据的执行结果