c# 性能有关的问题!!!!

问题如图,请说出这段代码哪些地方需要优化?怎么优化?并详细说明一下优化理由
麻烦各位大神了,如果解答比较有用还有红包答谢!!图片说明

c#

3个回答

修改后的代码如下:

            List<string> ls = new List<string>();
            ls.Add("A");
            ls.Add("B");
            ls.Add("C");
                        ......

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < ls.Count; i++)
            {
                sb.Append(ls[i]).Append(",");
            }
            String result = sb.ToString();
                        trace(result);

当用"+="方式进行大量字符串的拼接操作时(特别是在循环体中),会生成过多不必要的临时字符串
从而影响性能。

本来我想展开详细写写,写了半个小时,发现很难讲完整,放弃了:)
"+="方式和StringBuilder方式谁优劣,影响的因素很多,并不能轻易得出结论。

下面是我收集的几篇和这问题有关的文章:

http://www.cnblogs.com/allenlooplee/archive/2005/06/08/169924.html

http://blog.zhaojie.me/2009/11/string-concat-perf-1-benchmark.html (这个是系列,共3篇,非常详细)

如果是实际编程,当字符串数目不是非常多时,
不用纠结采用哪种方式,差别微乎其微。

如果是要写论文或者作业,以上两个链接是非常好的参考。

用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢。

这个问题估计是个面试问题,考官考的是字符串拼接的性能问题,楼上说的正确。
当然,如果按照楼上的方式回答,考官会认为你基本功是有的,但是项目经验是缺乏的。
工程师的做法很简单,一行代码
string result = String.Join(",", ls);

qq_37246087
我不姓郭 学到了、、感谢 、我不是楼主没法采纳、、哈哈、
接近 3 年之前 回复

在csdn回答问题真的不容易,付出的是热情和爱心,能得到一个谢谢都不错了。经常遇到胡乱采纳的,题目都写不全的,还有一言不合就开骂,除了见到这种绕着走,也没办法。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐