diff --git a/src/Microsoft.AspNetCore.Razor.Evolution/Legacy/Span.cs b/src/Microsoft.AspNetCore.Razor.Evolution/Legacy/Span.cs index 47e9e8e468..3a0e2ad63c 100644 --- a/src/Microsoft.AspNetCore.Razor.Evolution/Legacy/Span.cs +++ b/src/Microsoft.AspNetCore.Razor.Evolution/Legacy/Span.cs @@ -42,14 +42,23 @@ namespace Microsoft.AspNetCore.Razor.Evolution.Legacy { if (_content == null) { - var builder = new StringBuilder(); - for (var i = 0; i < Symbols.Count; i++) + var symbolCount = Symbols.Count; + if (symbolCount == 1) { - var symbol = Symbols[i]; - builder.Append(symbol.Content); + // Perf: no StringBuilder allocation if not necessary + _content = Symbols[0].Content; } + else + { + var builder = new StringBuilder(); + for (var i = 0; i < symbolCount; i++) + { + var symbol = Symbols[i]; + builder.Append(symbol.Content); + } - _content = builder.ToString(); + _content = builder.ToString(); + } } return _content;