Linq.Enumerable
クラスからこのコードをチェックしてください:
static IEnumerable<TSource> DistinctIterator<TSource>(IEnumerable<TSource> source, IEqualityComparer<TSource> comparer) {
Set<TSource> set = new Set<TSource>(comparer);
foreach (TSource element in source)
if (set.Add(element)) yield return element;
}
Microsoft の担当者がSet
、通常の ではなく、この内部実装を使用することにしたのはなぜHashSet
ですか? 何らかの点で優れている場合は、一般に公開してみませんか?