Dai un'occhiata a questo pezzo di codice da Linq.Enumerable
classe:interno System.Linq.Set <T> vs System.Collections.Generic.HashSet pubblico <T>
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;
}
Perché i ragazzi di Microsoft ha deciso di utilizzare questa implementazione interna di Set
e non il normale HashSet
? Se è meglio in ogni caso, perché non esporlo al pubblico?