Объединение строк в одном кадре будет быстрее, чем использование StringBuilder
- хотя, если Sb
уже является StringBuilder
, то может иметь смысл добавить к нему вместо этого (при условии, что это локальная переменная). Если предположить, что на самом деле это данные, поступившие из базы данных, то время, необходимое для их извлечения, в любом случае значительно превысит конкатенацию строк.
Обратите внимание, что вам не нужны все эти вызовы на ToString()
- это будет так же хорошо:
return (Sb + " " + ds.Tables[1].Rows[0].ItemArray[0] + " " +
ds.Tables[2].Rows[0].ItemArray[0]);
Вот эквивалент с использованием существующего компоновщика:
return Sb.Append(" ")
.Append(ds.Tables[1].Rows[0].ItemArray[0])
.Append(" ")
.Append(ds.Tables[2].Rows[0].ItemArray[0])
.ToString();
Это может быть немного быстрее - это будет зависеть от разных вещей. Лично я, вероятно, в любом случае использовал бы версию конкатенации, так как она немного проще IMO. Я очень сомневаюсь, что вы увидите большую разницу в производительности. Обратите внимание, что это немного особый случай, так как у вас уже есть StringBuilder
; в общем случае конкатенации набора элементов, где все они могут быть указаны в одном выражении времени компиляции, конкатенация может быть быстрее, поскольку один вызов метода может предоставить всю необходимую информацию.
У меня есть страница на StringBuilder
против конкатенации строк , если вам нужны дополнительные сведения и рекомендации.