StringBuilder的是真的比Aggreggate快? [英] Is StringBuilder really faster than Aggreggate?

查看:147
本文介绍了StringBuilder的是真的比Aggreggate快?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 串c = tmpArr [0] .Aggregate(的String.Empty,(目前,M)=>当前+(m.Name +)); 

StringBuilder的SB =新的StringBuilder();

的foreach(在tmpArr移动M [0])
sb.Append(m.Name +);

sb.ToString();



其中的两个是比较快?总肯定是清洁的,但它是快还是一样做

 的foreach(移动米tmpArr [0]) 
C + = m.Name +;



我真正希望做的是一样的东西的string.join( ,tmpArr [0]),但我不希望它Concat的自己的ToString值,只是他们的名字,我会怎么做,最好的?



我的问题,没有使用的string.join 是我居然会做这样的事情:

 字符串分隔符=; 
StringBuilder的SB =新的StringBuilder();

的foreach
{
隔板=,(在tmpArr [0]移动米);
sb.Append(隔板+ m.Name);
}


解决方案




 的string.join(,tmpArr [0]。选择(T => t.Name).ToArray())

但大部分时间的 它。只是。不。事!


        string c = tmpArr[0].Aggregate(string.Empty, (current, m) => current + (m.Name + " "));

        StringBuilder sb = new StringBuilder();

        foreach (Mobile m in tmpArr[0])
            sb.Append(m.Name + " ");

        sb.ToString();

which of those two is faster? aggregate certainly is cleaner, but is it fast or is it the same as doing

foreach(Mobile m in tmpArr[0])
    c += m.Name + " ";

what I really would like to do is something like string.Join(",",tmpArr[0]), but I don't want it to concat their ToString values, just their Names, how would I do that best?

my problem with not using string.Join is I would actually have to do something like this:

        string separator = "";
        StringBuilder sb = new StringBuilder();

        foreach (Mobile m in tmpArr[0])
        {
            separator = ", ";
            sb.Append(separator + m.Name);
        }

解决方案

I don't want it to concat their ToString values, just their Names, how would I do that best?

string.Join(",",tmpArr[0].Select(t => t.Name).ToArray())

But most of the time It. Just. Doesn't. Matter!

这篇关于StringBuilder的是真的比Aggreggate快?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆