Я хочу добавить HashSet (который будет содержать 2 вектора) в словарь в качестве ключей. Позже я хочу (быстро) проверить, содержит ли словарь HashSet, который я создаю на лету из 2 векторов. Я хочу, чтобы проверка содержимого / равенства зависела от Векторов в наборе.
Fex. Если я добавлю HashSet [V000 V001]
к Dict. Я хочу, чтобы Dict.ContainsKey (HashSet [V001 V000]) вернул true. (HashSet, поэтому порядок может отличаться, только одни и те же элементы)
Кажется, проблема в том, что Dict.ContainsKey видит отдельно созданные HashSets как разные объекты, даже если они содержат одинаковые элементы.
Dictionary<HashSet<Vector3>, Vector3> d = new Dictionary<HashSet<Vector3>, Vector3>();
HashSet<Vector3> s = new HashSet<Vector3>();
s.Add(Vector3.one);
s.Add(Vector3.zero);
d.Add(s);
HashSet<Vector3> s2 = new HashSet<Vector3>();
s2.Add(Vector3.zero);
s2.Add(Vector3.one);
bool doesContain = d.ContainsKey(s2);
Вы также можете рассмотреть лучший способ сделать эту проверку быстро. Я не совсем уверен, что это лучшее решение для того, что я делаю. Может быть, вы уже разобрались. Я проверяю, содержит ли общая группа ребер эту связь между двумя точками.