Files
Studio/Assets/Scripts/Pair.cs
2025-02-19 17:24:26 +09:00

42 lines
1.0 KiB
C#

using System.Collections.Generic;
using UnityEngine;
namespace XED
{
public class Pair<T>
{
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<T> other)
{
return EqualityComparer<T>.Default.Equals(Item1, other.Item1) && EqualityComparer<T>.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;
}
}
}