public static bool Contains <TItem>(this HashSet <TItem> source, TItem value, IEqualityComparer <TItem> comparer) { if (source == null) { CommonImplementation.ArgumentNull(nameof(source)); } comparer = comparer ?? EqualityComparer <TItem> .Default; var sameComparer = object.ReferenceEquals(source.Comparer, comparer); if (sameComparer) { return(source.Contains(value)); } // no need for bridge call, known to be non-null var bridge = new IdentityEnumerable <TItem, HashSet <TItem>, HashSetBridger <TItem>, HashSetEnumerator <TItem> >(source); if (comparer == null) { return(CommonImplementation.ContainsImpl <TItem, IdentityEnumerable <TItem, HashSet <TItem>, HashSetBridger <TItem>, HashSetEnumerator <TItem> >, HashSetEnumerator <TItem> >(ref bridge, value)); } return(CommonImplementation.ContainsImpl <TItem, IdentityEnumerable <TItem, HashSet <TItem>, HashSetBridger <TItem>, HashSetEnumerator <TItem> >, HashSetEnumerator <TItem> >(ref bridge, value, comparer)); }
public static System.Collections.Generic.LinkedList <TItem> LinkedList <TItem, TConcat_IdentityBridgeType, TConcat_IdentityBridger, TConcat_IdentityEnumerator>(IdentityEnumerable <TItem, TConcat_IdentityBridgeType, TConcat_IdentityBridger, TConcat_IdentityEnumerator> second) where TConcat_IdentityEnumerator : struct, IStructEnumerator <TItem> where TConcat_IdentityBridger : struct, IStructBridger <TItem, TConcat_IdentityBridgeType, TConcat_IdentityEnumerator> where TConcat_IdentityBridgeType : class => LinkedListImpl <TItem, IdentityEnumerable <TItem, TConcat_IdentityBridgeType, TConcat_IdentityBridger, TConcat_IdentityEnumerator>, TConcat_IdentityEnumerator>(ref second);