6
とにかく重複を含むことができない場合、HashSetでDistinct()メソッドを使用できるのはなぜですか?なぜC#のHashSetにDistinct()メソッドがあるのですか
とにかく重複を含むことができない場合、HashSetでDistinct()メソッドを使用できるのはなぜですか?なぜC#のHashSetにDistinct()メソッドがあるのですか
Distinct
の方法は、HashSet<>
ではなく、HashSet<>
で実装されているIEnumerable<>
にあります。
特定の種類の拡張メソッドを「省略」することはできません。ある型に追加されると、その型と派生したもののすべてが拡張メソッドを取得します。
説明すると、object
を拡張すると、関連する名前空間を追加した場合にすべてが壊れてしまいます。
namespace System
{
public static class ObjectExtensions
{
public static void Garbage(this object foo)
{
}
}
}
をDistinct'はHashSetのは '実装にたまたま' 'IEnumerableを'上の拡張メソッド、ある '明確にする:だから追加行きません。 –
bluevector
@jonnyGoldはい、あなたのコメントの前に自分の答えを編集したばかりです。とにかく説明してくれてありがとう。 –
もっと正確に言うと、 'Distinct'は' IEnumerable <> 'を拡張し静的クラス' System.Linq.Enumerable'に存在する拡張メソッドです。 –