Déjà un Hashciode c"est du int, donc ça ne peut pas compiler.
Maintenant si ton GUID est unique et suffit à caractériser ton instance (approche logique) et que tu considéres que l'égalité de deux GUID implique fonctionnellement l'égalité des deux instances, tu peux retourner le hashcode du GUID; c'est une bonne solution.
Attention néanmoins : si les propriétés ne sont pas "readonly" tu peux avoir deux instances en mémoire réputées égales (par égalité du GUID) avec des valeurs de propriétés différentes : pas glop, pas glop :D
donc
Ensuite, il faut évidemment que l'override de Equals reflète cette approche, sinon tu risque d'avoir des comportement un peu originaux dans les listes.Code:
1
2
3
4 public override int GetHashCode () { return this.Id.GetHashCode(); }
(l'égalité étant définie comme égalité des hashcode).