2010-05-23 6 views
0

단일 문자열에서 item.Number를 가져와 연결하는 더 나은 방법이 있습니까? 현재LINQ 개체 : 빠른 아이디어?

:

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) 
); 

답변

7

foreach 약간 간단하고 이해하기 쉬울 것입니다. String.Concat 방법은 (더)해야한다 연결을위한 효율적인 -

var numbers = new StringBuilder(); 

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

은 아마 당신은 정말 여기에서 명시 적으로 StringBuilder를 사용할 필요가 없습니다. 그러나, 나는 당신이이 같이 사용할 경우이 같은 모든 요소에 대한 ToString를 호출하면 성능 문제인지 모르겠어요 (나는 그렇게 생각하지 것이다 - + 보내고 문자열의 주요 문제가 복사됩니다) :

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

'string.Concat'의 오버로드는 .NET 4.0에서만 가능합니다. –