Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
На .NET 2.0 beta 2 результаты несколько лучше, но не так уж и сильно.
int[] someArray = {1,2,3};
string s = string.Concat(someArray.Select(i => i.ToString()));
string name = new StringBuilder(firstName).Append(" ").Append(lastName).ToString();
for (int i = 0; i < 10000000; i++)
{
var a = rnd.Next(10000);
var b = rnd.Next(1000);
//string s = string.Format("{0} {1}", a, b); // 9.9 seconds
//string s = string.Concat(a, " ", b); // 6.5 seconds
string s = a.ToString() + " " + b.ToString(); // 6.8 seconds
builder.Append(s);
}
for (int i = 0; i < 10000000; i++)
{
var a = rnd.Next(10000);
var b = rnd.Next(1000);
// 5.9 seconds
builder.Append(a);
builder.Append(" ");
builder.Append(b);
}
Такой скачек производительности достигается благодаря устранению ненужной операции копирования — копируются только те данные, которые присоединяются к результирующей строке.
Эффективная конкатенация строк в .NET