KeyEqualityComparer.cs 578 B

12345678910111213141516171819202122232425262728293031323334
  1. #nullable enable
  2. /// <summary>
  3. ///
  4. /// </summary>
  5. public class KeyEqualityComparer : IEqualityComparer<Key>
  6. {
  7. /// <inheritdoc />
  8. public bool Equals (Key? x, Key? y)
  9. {
  10. if (ReferenceEquals (x, y))
  11. {
  12. return true;
  13. }
  14. if (x is null || y is null)
  15. {
  16. return false;
  17. }
  18. return x.KeyCode == y.KeyCode;
  19. }
  20. /// <inheritdoc />
  21. public int GetHashCode (Key? obj)
  22. {
  23. if (obj is null)
  24. {
  25. return 0;
  26. }
  27. return obj.KeyCode.GetHashCode ();
  28. }
  29. }