Мне просто любопытно .. Когда я вызываю Distinct <> () ( из Linq) на HashSet, знает ли .NET, что этот IEnumerable всегда содержит отдельный набор значений и оптимизирует этот вызов?