Used a simple HashSet<TSource> for distinct.