当前位置:  开发笔记 > 编程语言 > 正文

字符串列表到一个字符串

如何解决《字符串列表到一个字符串》经验,为你挑选了6个好方法。

让我们说你有一个:

List los = new List();

在这个疯狂的功能世界中,我们生活在这些日子里,其中一个最适合通过连接这些来创建一个字符串:

String.Join(String.Empty, los.ToArray());

StringBuilder builder = new StringBuilder();
los.ForEach(s => builder.Append(s));

string disp = los.Aggregate((a, b) => a + b);

或简单的旧StringBuilder foreach

或者,还有更好的方法?



1> BFree..:

我会选择A:

String.Join(String.Empty, los.ToArray());

我的理由是因为为此目的编写了Join方法.事实上,如果你看一下Reflector,你会发现使用不安全的代码来真正优化它.另外两个也是WORK,但我认为Join函数是为此而编写的,我猜,最有效率.我可能错了......

根据@Nuri YILMAZ没有.ToArray(),但这是.NET 4+:

String.Join(String.Empty, los);


太好了!只有注释:Join不需要los.ToArray(),因为List 可以转换IEnumarable .
@Nuri:这个问题在08年之前被问过.Net 4出来之前.在IE4中添加了IEnumerable 的重载.
比StringBuilder快3倍?哇,我觉得这样会更快,却没有意识到到底有多快。不过,这是有道理的,它是使用指针在不安全的代码中完成的,所以.....是有道理的。
String.Join与String.Concat一起是黄金的.例如:'String.Concat("{",String.Join(",",m_Data),"}");'

2> Pent Ploompu..:
string.Concat(los.ToArray());

如果你只想连接字符串,那么使用string.Concat()而不是string.Join().



3> mnieto..:

如果您使用.net 4.0,则可以使用分拣机方式:

String.Join(String.Empty, los);



4> J Cooper..:

String.Join()实现得非常快,因为你已经有了一个有问题的字符串集合,可能是最好的选择.最重要的是,它喊道:"我加入了一系列字符串!" 总是很好.



5> landrady..:
los.Aggregate((current, next) => current + "," + next);



6> Tom Ritter..:

我的投票是字符串。

无需创建lambda评估和临时函数,更少的函数调用,更少的堆栈压入和弹出。

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有