From 2462114690b25fb1ef7baa3afffaabd6f8e838a2 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 28 May 2022 12:43:05 +0200 Subject: [PATCH] Reduce allocations. --- .../ConvertContent/FieldConverters.cs | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs index 11b57e7d3..381a5a369 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs @@ -100,9 +100,24 @@ namespace Squidex.Domain.Apps.Core.ConvertContent return result; } - foreach (var key in data.Keys.Where(x => !languages.AllKeys.Contains(x)).ToList()) + while (true) { - data.Remove(key); + var isRemoved = false; + + foreach (var (key, _) in data) + { + if (!languages.AllKeys.Contains(key)) + { + data.Remove(key); + isRemoved = true; + break; + } + } + + if (!isRemoved) + { + break; + } } } @@ -164,11 +179,23 @@ namespace Squidex.Domain.Apps.Core.ConvertContent { if (field.Partitioning.Equals(Partitioning.Language)) { - foreach (var (key, _) in data.ToList()) + while (true) { - if (!languageSet.Contains(key)) + var isRemoved = false; + + foreach (var (key, _) in data) + { + if (!languageSet.Contains(key)) + { + data.Remove(key); + isRemoved = true; + break; + } + } + + if (!isRemoved) { - data.Remove(key); + break; } } }