Open ewoutkramer opened 2 hours ago
Since using GetElementPairs() is slower than the current generated approach, it's also possible to use a SourceGenerator to generate these comparers, so the users does not have to hand-write them. Maybe a nice follow up project ;-)
We can rewrite Matches and IsExactly in terms of GetElementPairs(), or even IReadOnlyDictionary. This could be done as in-place replacements for the current methods (who then don't need to be virtual anymore), but we could also turn them into a
ExactEqualityComparer<T>
andPatternEqualityComparer<T>
to align with the normal .NET strategy of implementingSystem.Collections.Generic.EqualityComparer<Base>
for these kind of purposes.Again, as a guide to the user, we can leave the old methods in, throw not implemented and add an Obsolete with a message to indicate you should use the comparers.