diff --git a/src/Verify/Serialization/Scrubbers/DirectoryReplacements_StringBuilder.cs b/src/Verify/Serialization/Scrubbers/DirectoryReplacements_StringBuilder.cs index a9d5551f9..752e23dc9 100644 --- a/src/Verify/Serialization/Scrubbers/DirectoryReplacements_StringBuilder.cs +++ b/src/Verify/Serialization/Scrubbers/DirectoryReplacements_StringBuilder.cs @@ -39,11 +39,11 @@ public static void Replace(StringBuilder builder, List paths) var matches = FindMatches(builder, paths); - // Sort by position descending - var orderByDescending = matches.OrderByDescending(_ => _.Index); + // Sort by position descending. In-place to avoid LINQ allocation + matches.Sort((a, b) => b.Index.CompareTo(a.Index)); // Apply matches - foreach (var match in orderByDescending) + foreach (var match in matches) { builder.Overwrite(match.Value, match.Index, match.Length); } diff --git a/src/Verify/Serialization/Scrubbers/GuidScrubber.cs b/src/Verify/Serialization/Scrubbers/GuidScrubber.cs index 8582410a0..15310f152 100644 --- a/src/Verify/Serialization/Scrubbers/GuidScrubber.cs +++ b/src/Verify/Serialization/Scrubbers/GuidScrubber.cs @@ -15,11 +15,11 @@ public static void ReplaceGuids(StringBuilder builder, Counter counter) var matches = FindMatches(builder, counter); - // Sort by position descending - var orderByDescending = matches.OrderByDescending(_ => _.Index); + // Sort by position descending. In-place to avoid LINQ allocation + matches.Sort((a, b) => b.Index.CompareTo(a.Index)); // Apply matches - foreach (var match in orderByDescending) + foreach (var match in matches) { builder.Overwrite(match.Value, match.Index, 36); } diff --git a/src/Verify/Serialization/Scrubbers/UserMachineScrubber_PerformReplacements.cs b/src/Verify/Serialization/Scrubbers/UserMachineScrubber_PerformReplacements.cs index fe7bbc9dc..499f4ce8e 100644 --- a/src/Verify/Serialization/Scrubbers/UserMachineScrubber_PerformReplacements.cs +++ b/src/Verify/Serialization/Scrubbers/UserMachineScrubber_PerformReplacements.cs @@ -12,11 +12,11 @@ public static void PerformReplacements(StringBuilder builder, string find, strin var matches = FindMatches(builder, find); - // Sort by position descending - var orderByDescending = matches.OrderByDescending(_ => _); + // Sort by position descending. In-place to avoid LINQ allocation + matches.Sort((a, b) => b.CompareTo(a)); // Apply matches - foreach (var match in orderByDescending) + foreach (var match in matches) { builder.Overwrite(replace, match, find.Length); }