두 개의 해시 세트가 (참조가 아닌 값에 따라) 동일인지 어떻게 결정합니까?
문제
나는 둘을 결정하려고 노력하고있다 HashSet
.NET 3.5 (C#)의 객체는 동일한 세트이며 즉 동일한 값을 포함합니다. 이것은 분명히 원하는 것 같지만 제공된 기능 중 어느 것도이 정보를 제공하지 않는 것 같습니다.
내가 이것을 할 수있는 방법은 두 세트의 수가 같는지 확인하는 것입니다. 그리고 한 세트는 다른 세트의 하위 집합입니다. 일어날 수있는 유일한 방법은 그들이 동등한 세트 인 경우라고 생각합니다. 예제 코드 :
HashSet<int> set1 = new HashSet<int>();
set1.Add(1);
set1.Add(2);
set1.Add(3);
HashSet<int> set2 = new HashSet<int>();
set2.Add(1);
set2.Add(2);
set2.Add(3);
if(set1.Count == set2.Count && set1.IsSubsetOf(set2))
{
// do something
}
항상 작동할까요? 더 좋은 방법이 있습니까? 왜 그렇지 않습니다 HashSet
가지고있다 public bool IsEqualSetWith()
기능?
해결책
방법을보십시오 setequals.
my_hashset.SetEquals(other);
다른 팁
IEqualityComparer<HashSet<int>> comp = HashSet<int>.CreateSetComparer();
Console.WriteLine("CreateSetComparer set1 == set2 : {0}", comp.Equals(set1, set2));
// or
bool areEqual = HashSet<int>.CreateSetComparer().Equals(set1, set2);
제휴하지 않습니다 StackOverflow