This project adheres to Semantic Versioning.
- The Rx and Ix extension methods have been removed.
- Changed
netcoreapp2.0
support tonetcoreapp3.0
to avoid high-security vulnerabilities.
- Bump Rx and Ix dependencies.
- Explicity support net461 so that shim dlls are not required on that platform.
ignoreOrder
option forEquateSequence
to ignore order of elements when comparing for sequence equality.
IFullComparer<string>.ToStringComparer
to easily create aStringComparer
instance.FixedStringComparer
to provideStringComparer
instances that do not throw onnull
.- Nullable reference type checking.
- Added
AdvancedComparerBase<T>
andAdvancedEqualityComparerBase<T>
for advanced scenarios.
- Static constructors for derived types are always invoked (so they set
DefaultComparer
), even if an instance is not ever created. #34
- Hash algorithm is now Murmur3.
See v6 upgrade guide.
- Some type names used in the builder pattern. Most users will not be affected.
- Plain
IComparer<T>
types must now declare aGetHashCode
implementation to be used withNito.Comparers
. ReferenceEqualityComparer
is now restricted to reference types.
- "Fix comparer" extension methods to apply default
null
handling to misbehaving comparers.
BinarySearch
overloads that allowed defining the comparer inline.
- Source link support.
- Corner cases for comparers and equality comparers.
IEqualityComparer.GetHashCode
when called with an unexpected type.- Stack overflow when
IComparer.Compare
is called for objects of different types that each forward theirIComparable
implementation to that method. - Stack overflow in
EqualityComparerBase.IEqualityComparer.Equals
corner case. - Fixed #12: when comparison methods are passed invalid types (using the nongeneric
IEqualityComparer
orIComparer
interfaces), they could throwInvalidCastException
orNullReferenceException
.
- Revert public signing.
- Public signing.
- Work around .NET Core SDK bug.
- Build scripts.
See v5 upgrade guide.
- NuGet package is now
Nito.Comparers
instead ofComparers
. - Better names for types used in the "builder" pattern for comparers.
allowNulls
parameter name changed tospecialNullHandling
.- Equality comparer types moved from
Nito.EqualityComparers
namespace toNito.Comparers
.
- The anonymous comparers have been removed.
*Descending
methods have been removed; use thedescending
parameter instead.
- Bug in determining default comparer for sequences.
- WPA target.
- LINQ/Rx/Ix support with implicit type detection.
- PCL targets.
- Better hash code implementations.
- Equality comparers.
- New targets: .NET 4.5, Silverlight 4 and 5, Metro, and XBox.
CompoundComparer.GetHashCode
- NuGet package metadata.
- Removed contract exceptions when passing
null
toGetHashCode
.
- More consistent API.
- Sequence comparers.
- Comparison operators.
- Ability to override how
null
is treated.
ToString()
implementations to all comparers to assist debugging.
Initial release.