max*_*dbe 198 c# string performance functional-programming
让我们说你有一个:
List<string> los = new List<string>();
Run Code Online (Sandbox Code Playgroud)
在这个疯狂的功能世界中,我们生活在这些日子里,其中一个最适合通过连接这些来创建一个字符串:
String.Join(String.Empty, los.ToArray());
StringBuilder builder = new StringBuilder();
los.ForEach(s => builder.Append(s));
string disp = los.Aggregate<string>((a, b) => a + b);
Run Code Online (Sandbox Code Playgroud)
或简单的旧StringBuilder foreach
或者,还有更好的方法?
BFr*_*ree 279
我会选择A:
String.Join(String.Empty, los.ToArray());
Run Code Online (Sandbox Code Playgroud)
我的理由是因为为此目的编写了Join方法.事实上,如果你看一下Reflector,你会发现使用不安全的代码来真正优化它.另外两个也是WORK,但我认为Join函数是为此而编写的,我猜,最有效率.我可能错了......
根据@Nuri YILMAZ没有.ToArray(),但这是.NET 4+:
String.Join(String.Empty, los);
Run Code Online (Sandbox Code Playgroud)
Pen*_*puu 50
string.Concat(los.ToArray());
Run Code Online (Sandbox Code Playgroud)
如果你只想连接字符串,那么使用string.Concat()而不是string.Join().
mni*_*eto 18
如果您使用.net 4.0,则可以使用分拣机方式:
String.Join<string>(String.Empty, los);
Run Code Online (Sandbox Code Playgroud)