public static bool ContainsAny()

in src/VSSetup.PowerShell/PowerShell/Extensions.cs [70:95]


        public static bool ContainsAny<T, TKey>(this IEnumerable<T> source, Func<T, TKey> selector, IEnumerable<TKey> keys, IEqualityComparer<TKey> comparer = null)
        {
            Validate.NotNull(source, nameof(source));
            Validate.NotNull(selector, nameof(selector));
            Validate.NotNull(keys, nameof(keys));

            comparer = comparer ?? EqualityComparer<TKey>.Default;

            var e = source.Select(selector);
            var items = new HashSet<TKey>(e, comparer);

            if (!keys.Any())
            {
                return true;
            }

            foreach (var key in keys)
            {
                if (items.Contains(key))
                {
                    return true;
                }
            }

            return false;
        }