Avoid OrderedIterator when comparing OpenApiSchema.Required equality #57298
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contributes towards #56829.
Required properties in an OpenAPI schema represented in an ISet. Previously, to support order-invariant comparisons we were using
.Order()
and.SequenceEquals()
.It turns out
.SetEquals()
exists and is order invariant so we can use that directly instead of constructing anOrderedIterator
via theOrder
call.Results from a local benchmark run are below:
BenchmarkDotNet v0.13.12, macOS Sonoma 14.6.1 (23G93) [Darwin 23.6.0]
Apple M2 Max, 1 CPU, 12 logical and 12 physical cores
.NET SDK 9.0.100-preview.7.24371.4
[Host] : .NET 9.0.0 (9.0.24.41005), Arm64 RyuJIT AdvSIMD
Job-JUVRYQ : .NET 9.0.0 (9.0.24.36618), Arm64 RyuJIT AdvSIMD
Server=True Toolchain=.NET Core 9.0 RunStrategy=Throughput
Before
After
Server=True Toolchain=.NET Core 9.0 RunStrategy=Throughput