INNER CODE UNIT · C#
AnimalComparer
BlueshiftSoftware/EntityFrameworkCore · src/Blueshift.EntityFrameworkCore.MongoDB.SampleDomain/_Comparers.cs:7
public class AnimalComparer : IComparer<Animal>
{
public int Compare(Animal x, Animal y)
=> x?.GetType() == y?.GetType()
? Comparer<string>.Default.Compare(x?.Name, y?.Name)
: Comparer<string>.Default.Compare(x?.GetType().Name, y?.GetType().Name);
}
public abstract class BaseEqualityComparer<T> : EqualityComparer<T>
{
public override int GetHashCode(T obj)
=> obj?.GetHashCode() ?? throw new ArgumentNullException(nameof(obj));
public sealed override bool Equals(T item1, T item2)
=> (item1 == null && item2 == null)
|| (item1 != null && item2 != null
&& MemberwiseEquals(item1, item2));