C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回は配列のようにHashSetクラスの変数のDictionary、Listクラスとの比較です。
[HashSet]クラス
HashSetクラスは、纏まった値を管理する配列のような変数を作成するクラスです。
例えば、私は画像形式ファイルの拡張子を管理する際に使っています。
HashSet<string> _imageExts = new HashSet<string>
{
".jpg",
".jpeg",
".png",
".webp",
".avif"
};
注意点としては、値の重複が許可されないために[Add]メソッドで同じ値を追加する際に無視されます。
その他に追加した値の順序も不定になるのも注意点です。
[Dictionary]、[List]などが配列を扱えるクラスとして存在しますが、私が他のクラスを利用する場合には、次の部分を考慮に入れています。
[List]クラス
値の重複が可能で、順序も保持したい場合は[List]クラスが利用できます。デメリットとして検索する速度などがトレードオフになります。
[Dictionary]クラス
[キー]と[値]の関係性を保持する場合には[Dictionary]クラスが利用できます。キーの重複を許可しないのは[HashSet]クラスと同じです。
[キー]と[値]の対を管理するために、1つの値のみを管理する場合は利用できません。
まとめ
今回は、短い記事ですが、列のようにHashSetクラスの変数のDictionary、Listクラスとの比較について紹介しました。
[HashSet]クラスを利用すると、まとまった値を管理することが可能です。
同様な[List]、[Dictionary]クラスがありますが、重複する値の許可や、値の数など管理する値の特徴で使い分けが可能です。
WinUI 3 アプリで、配列を管理するクラスを選ぶ参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。
