理想的には、テンプレート化された論理 Set クラスを探しています。ユニオン、インターセクションなどの標準的なセット操作がすべて含まれ、重複したアイテムを折りたたむことができます。
キーを使用するだけで、C# Dictionary<> に基づいて独自のセット クラスを作成することになりました。
理想的には、テンプレート化された論理 Set クラスを探しています。ユニオン、インターセクションなどの標準的なセット操作がすべて含まれ、重複したアイテムを折りたたむことができます。
キーを使用するだけで、C# Dictionary<> に基づいて独自のセット クラスを作成することになりました。
HashSet<T>
が一番近いと思います。
私が見た中で最高のセットの実装は、すばらしい Wintellect の Power Collections の一部です: http://www.codeplex.com/PowerCollections。
セットの実装は次の場所にあります:
http://www.codeplex.com/PowerCollections/SourceControl/FileView.aspx?itemId=101886&changeSetId=6259
予想されるすべてのセット操作 (結合、交差など) があります。
お役に立てれば!
3.5でHashSetをチェックアウトしましたか?
いいえ、フレームワークにネイティブにはありません。ほとんどのプロジェクトが使用するオープン ソースの実装 (つまり、nHibernate) があり、Iesi.Collections と呼ばれます。これに関するCodeProjectの記事は次のとおりです。
C# には何も組み込まれていないと思いますが、いくつかの実装がネット上に出回っていることは知っています。この種のことについては、いくつかの優れた記事もあります。
これは、データ構造を効率的に表現するシリーズのパート 6です。このパートでは、C# でのセットの表現に焦点を当てます。
セットコレクション
の実装セットクラスの実装セットクラスの
さらに別の実装
そして最後に...
私は実際に、1年ほど前に行った一連の実装の基礎として、このライブラリを自分で使用しました。