Skip to content

Commit 9a2f364

Browse files
authored
Merge pull request #1265 from json-api-dotnet/serializer-perf
Improve serializer performance
2 parents d2e321c + 5dd256f commit 9a2f364

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/JsonApiDotNetCore/Serialization/Response/ResourceObjectTreeNode.cs

+5-4
Original file line numberDiff line numberDiff line change
@@ -181,13 +181,14 @@ public IList<ResourceObject> GetResponseIncluded()
181181
VisitRelationshipChildrenInSubtree(child, visited);
182182
}
183183

184-
List<ResourceObject> includes = visited.Select(node => node.ResourceObject).ToList();
184+
ISet<ResourceObject> primaryResourceObjectSet = GetDirectChildren().Select(node => node.ResourceObject).ToHashSet(ResourceObjectComparer.Instance);
185+
List<ResourceObject> includes = new();
185186

186-
foreach (ResourceObject primaryResourceObject in GetDirectChildren().Select(node => node.ResourceObject))
187+
foreach (ResourceObject include in visited.Select(node => node.ResourceObject))
187188
{
188-
if (includes.Contains(primaryResourceObject, ResourceObjectComparer.Instance))
189+
if (!primaryResourceObjectSet.Contains(include))
189190
{
190-
includes.Remove(primaryResourceObject);
191+
includes.Add(include);
191192
}
192193
}
193194

0 commit comments

Comments
 (0)