LINQ To对象:更快的想法?

时间:2010-05-23 01:09:23

标签: c# linq performance linq-to-objects

您是否看到了更好的方法来获取和连接item.Number在一个字符串中?

电流:

var numbers = new StringBuilder( );
// group is the result of a previous group by
var basenumbers = group.Select( item => item.Number );
basenumbers.Aggregate
(
  numbers,
  ( res, element ) => res.AppendFormat( "{0:00}", element )
);

2 个答案:

答案 0 :(得分:7)

foreach稍微简单易懂。

var numbers = new StringBuilder();

foreach(var number in group.Select(item => item.Number))
{
    numbers.AppendFormat("{0:00}", number);
}

答案 1 :(得分:1)

也许你真的不需要在这里明确地使用StringBuilder - String.Concat方法应该(甚至更多)有效地进行连接。但是,如果您像这样使用它,我不确定是否为这样的所有元素调用ToString是一个性能问题(我不这么认为 - +字符串的主要问题是复制):

String.Concat(grp.Select(item => item.Number.ToString("{0:00}"))