I have a simple class:
public class TileName {
int Zoom, X, Y;
public override bool Equals (object obj)
{
var o = obj as TileName;
I know this questions is kind of old but nowadays you can easily create your hash code by using System.HashCode class
https://docs.microsoft.com/en-us/dotnet/api/system.hashcode.combine?view=netcore-3.1
In this specific case it would look like
public override int GetHashCode()
{
return HashCode.Combine(Zoom, X, Y);
}