using System.Collections.Generic; using UnityEngine; namespace XED { public class Pair { public T Item1 { get; private set; } public T Item2 { get; private set; } public Pair(T item1, T item2) { if (item1.GetHashCode() < item2.GetHashCode()) { Item1 = item1; Item2 = item2; } else { Item1 = item2; Item2 = item1; } } public override bool Equals(object obj) { if (obj is Pair other) { return EqualityComparer.Default.Equals(Item1, other.Item1) && EqualityComparer.Default.Equals(Item2, other.Item2); } return false; } public override int GetHashCode() { int hashItem1 = Item1 == null ? 0 : Item1.GetHashCode(); int hashItem2 = Item2 == null ? 0 : Item2.GetHashCode(); return hashItem1 ^ hashItem2; } } }