in EnvDTE.Client/Util/ReadOnlyIndexedCanonicalSet.cs [13:22]
internal ReadOnlyIndexedCanonicalSet([NotNull] IEnumerable<TElement> values, IEqualityComparer<TElement> comparer)
{
_set = new Dictionary<TElement, int>(comparer);
foreach (var value in values)
{
if (value is null || _set.ContainsKey(value)) continue;
_set.Add(value, _values.Count);
_values.Add(value);
}
}