69

HashSet.NET 3.5 (C#) の 2 つのオブジェクトが等しいセットであるかどうか、つまり同じ値が含まれているかどうかを判断しようとしています。これは明らかにやりたいことのように思えますが、提供されている関数のどれもこの情報を提供していないようです。

これを行うために私が考えることができる方法は、2 つのセットの数が等しく 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
}

これは常に機能しますか?より良い方法はありますか?なぜ機能がないHashSetpublic bool IsEqualSetWith()ですか?

4

2 に答える 2

121

メソッドSetEqualsを見てください。

my_hashset.SetEquals(other);
于 2009-01-30T01:56:06.073 に答える