Skip to content

Commit c4f474a

Browse files
committed
Better perf for TOC link generation
1 parent 6c0c319 commit c4f474a

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/MarkdownSnippets/Processing/TocBuilder.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ static class TocBuilder
22
{
33
public static string BuildToc(List<Line> headerLines, int level, List<string> tocExcludes, string newLine)
44
{
5-
var processed = new List<string>();
5+
var processed = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
66
var builder = new StringBuilder();
77
builder.Append("<!-- toc -->");
88
builder.Append(newLine);
@@ -65,11 +65,11 @@ static string GetTitle(string current)
6565
return Markdown.StripMarkdown(trim);
6666
}
6767

68-
static string BuildLink(List<string> processed, string title)
68+
static string BuildLink(Dictionary<string, int> processed, string title)
6969
{
7070
var lowerTitle = title.ToLowerInvariant();
71-
var processedCount = processed.Count(_ => _ == lowerTitle);
72-
processed.Add(lowerTitle);
71+
processed.TryGetValue(lowerTitle, out var processedCount);
72+
processed[lowerTitle] = processedCount + 1;
7373
var noSpaces = SanitizeLink(lowerTitle);
7474
if (processedCount == 0)
7575
{

0 commit comments

Comments
 (0)