두 개의 해시 세트가 (참조가 아닌 값에 따라) 동일인지 어떻게 결정합니까?

StackOverflow https://stackoverflow.com/questions/494224

문제

나는 둘을 결정하려고 노력하고있다 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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top