BEACHSIDE BLOG

MicrosoftとかC#を好むレンジャーの個人的メモ

【C#】 ToHashSet()

コレクションに対して、EnumerableクラスのToList() とか ToArray() はありますが、
ToHashSet() がない!で、ほしいときってあります。
そんな時は作りましょうっていう小ネタです。

個人的にはHashSetよりマッシュポテトの方が俄然好きなのはさておき....(´°ω°)チーン
f:id:beachside:20160605182911j:plain

HashSetは.NET Framework3.5で登場したもですね。
HashSetそのものはMSDNで確認するとして、
HashSet(T) クラス (System.Collections.Generic)

Generic絡みの何かを使う事前知識として、C#のお兄さまのサイトの
ufcpp.net
も抑えておくべきと思ってます。

C#デビューしたての人だと、
ジェネリック版とジェネリック版とかの歴史も知らなかったりするせいでわけわからんコード書いてくれたりするので....
歴史を知ることは大事ですね、と個人的に思ってます。

本題ですが、
今回はジェネリックのコレクションからHashSetを生成するには、こんな拡張メソッドを作ってあげればOKですね。

例として、intのArrayからintのHashSetを作るときは、

//intのArrayを作って...
var source = Enumerable.Range(1, 10).ToArray();
// HashSetへ
var result = source.ToHashSet();

Genericなので、だいたいどんな型でも使えます。


個人的に興味のあるASP.NET CoreとAngular2のネタも書きたいなーと思いつつ、全然やれてないままもう6月...。
継続にブログ書いてる方々ってすごいと思います....(__)。。ooOZZZZ