Код фактически эквивалентен этому:
foreach(string part in myList)
{
sb.Append(string.Concat(part.Split(':')[1], " "));
}
Так что да, будет создан дополнительный string
, представляющий конкатенацию второй части разбиения и пустой строки.
Включая исходную string
, у вас также есть две, созданные путем вызова Split()
, и ссылка на буквенную строку " "
, которая будет загружена из метаданных сборки.
Вы можете сохранить вызов Concat()
, просто Append
, последовательно получив результат разделения и пустую строку:
sb.Append(part.Split(':')[1]).Append(" ");
Обратите внимание, что если вы используете только строковые литералы, то компилятор сделает для вас одну оптимизацию:
sb.Append("This is " + "one string");
фактически компилируется в
sb.Append("This is one string");