C# c stringbuilder vs Aggreggate?

C# c stringbuilder vs Aggreggate?,c#,.net,C#,.net,StringBuilder真的比Aggreggate快吗 那两个哪个更快?聚合当然更干净,但它是快速的还是和我们做的一样 tmpArr中的ForEachm移动设备[0] c+=m.名称+ 我真正想做的是像string.Join、、tmpArr[0]这样的东西,但我不希望它包含它们的ToString值,只包含它们的名称,我该如何做才能做到最好 我不使用string.Join的问题是,实际上我必须执行以下操作: 字符串分隔符=; StringBuilder sb=新的StringBuilder

StringBuilder真的比Aggreggate快吗

那两个哪个更快?聚合当然更干净,但它是快速的还是和我们做的一样

tmpArr中的ForEachm移动设备[0] c+=m.名称+

我真正想做的是像string.Join、、tmpArr[0]这样的东西,但我不希望它包含它们的ToString值,只包含它们的名称,我该如何做才能做到最好

我不使用string.Join的问题是,实际上我必须执行以下操作:

字符串分隔符=; StringBuilder sb=新的StringBuilder

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

在字符串中多次添加块是一个坏主意,因为字符串在.NET中是不可变的,所以在内存中会得到很多垃圾字符串,而且可能重复应用在执行时间上也会更昂贵。当您需要编写字符串时,使用StringBuilder、String.Concat或String.Join绝对是最好的方法。

最干净的方法是使用String.Join,因为它就是为了:

string.Join(" ", tmpArr[0].Select(x => x.Name));

小结:你的最后一个例子是不正确的。。。分隔符=;应该在追加之后,否则它将在首次使用之前设置,这不是您的意图。这是您的代码,请使用您的硬件和数据自己测试它:string.Join,tmpArr[0]。选择m=>m.Name;。。。你提出了你自己的问题,因为你是一个完全重复的人?为什么你会再次发布相同的问题,尤其是当另一个问题得到回答时?
string.Join(" ", tmpArr[0].Select(x => x.Name));