2 HashSetsは(ない参照することにより、値によって)が等しい場合はどのように決めるのですか?

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

質問

私はのすなわち、2 HashSetは、.NET 3.5(C#)を内のオブジェクトならば同じセットがあるかを決定しようとしています。は同じ値が含まれています。これは、1つは明らかにやりたいだろうが、提供される機能のどれもあなたにこの情報を提供するように見えるのないもののように思える。

二組のカウントがある場合、私はこれを行うに考えることができる方法を確認することである等しいの1セットは、他のサブセット(正しくない)です。私は、彼らが同じセットがある場合に発生することが唯一の方法だと思います。コード例:

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