public bool SequenceEqual <TGenKey, TGenElement, TGenInItem2, TGenEnumerable2, TGenEnumerator2>(
     LookupSpecificEnumerable <TGenKey, TGenElement> first,
     GroupByDefaultEnumerable <TGenInItem2, TGenKey, TGenElement, TGenEnumerable2, TGenEnumerator2> second
     )
     where TGenEnumerable2 : struct, IStructEnumerable <TGenInItem2, TGenEnumerator2>
     where TGenEnumerator2 : struct, IStructEnumerator <TGenInItem2>
 {
     return
         (CommonImplementation.SequenceEqual <
              GroupingEnumerable <TGenKey, TGenElement>,
              LookupSpecificEnumerable <TGenKey, TGenElement>,
              LookupSpecificEnumerator <TGenKey, TGenElement>,
              GroupByDefaultEnumerable <TGenInItem2, TGenKey, TGenElement, TGenEnumerable2, TGenEnumerator2>,
              GroupByDefaultEnumerator <TGenInItem2, TGenKey, TGenElement, TGenEnumerator2>
              >(ref first, ref second, null));
 }
 public bool SequenceEqual <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator>(
     GroupByDefaultEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator> first,
     LookupDefaultEnumerable <TGenKey, TGenElement> second
     )
     where TGenEnumerable : struct, IStructEnumerable <TGenInItem, TGenEnumerator>
     where TGenEnumerator : struct, IStructEnumerator <TGenInItem>
 {
     return
         (CommonImplementation.SequenceEqual <
              GroupingEnumerable <TGenKey, TGenElement>,
              GroupByDefaultEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator>,
              GroupByDefaultEnumerator <TGenInItem, TGenKey, TGenElement, TGenEnumerator>,
              LookupDefaultEnumerable <TGenKey, TGenElement>,
              LookupDefaultEnumerator <TGenKey, TGenElement>
              >(ref first, ref second, null));
 }
 // SequenceEqual default
 public bool SequenceEqual <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator>(
     PlaceholderEnumerable <GroupingEnumerable <TGenKey, TGenElement> > first,
     GroupByDefaultEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator> second
     )
     where TGenEnumerable : struct, IStructEnumerable <TGenInItem, TGenEnumerator>
     where TGenEnumerator : struct, IStructEnumerator <TGenInItem>
 {
     return
         (CommonImplementation.SequenceEqual <
              GroupingEnumerable <TGenKey, TGenElement>,
              PlaceholderEnumerable <GroupingEnumerable <TGenKey, TGenElement> >,
              PlaceholderEnumerator <GroupingEnumerable <TGenKey, TGenElement> >,
              GroupByDefaultEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator>,
              GroupByDefaultEnumerator <TGenInItem, TGenKey, TGenElement, TGenEnumerator>
              >(RefParam(first), ref second, null));
 }
Exemplo n.º 4
0
            > Join <TOutItem, TJoinKeyItem, TJoinLeftItem, TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>(
            BuiltInEnumerable <TJoinLeftItem> outer,
            GroupByDefaultEnumerable <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator> inner,
            Func <TJoinLeftItem, TJoinKeyItem> outerKeySelector,
            Func <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement>, TJoinKeyItem> innerKeySelector,
            Func <TJoinLeftItem, GroupingEnumerable <TGenGroupByKey, TGenGroupByElement>, TOutItem> resultSelector,
            IEqualityComparer <TJoinKeyItem> comparer
            )
            where TGenGroupByEnumerable : struct, IStructEnumerable <TGenGroupByInItem, TGenGroupByEnumerator>
            where TGenGroupByEnumerator : struct, IStructEnumerator <TGenGroupByInItem>
        {
            var outerBridge = Bridge(outer, nameof(outer));

            if (inner.IsDefaultValue())
            {
                throw CommonImplementation.Uninitialized(nameof(inner));
            }

            if (outerKeySelector == null)
            {
                throw CommonImplementation.ArgumentNull(nameof(outerKeySelector));
            }
            if (innerKeySelector == null)
            {
                throw CommonImplementation.ArgumentNull(nameof(innerKeySelector));
            }
            if (resultSelector == null)
            {
                throw CommonImplementation.ArgumentNull(nameof(resultSelector));
            }

            return
                (CommonImplementation.JoinImpl <
                     TOutItem,
                     TJoinKeyItem,
                     TJoinLeftItem,
                     BuiltInEnumerable <TJoinLeftItem>,
                     BuiltInEnumerator <TJoinLeftItem>,
                     GroupingEnumerable <TGenGroupByKey, TGenGroupByElement>,
                     GroupByDefaultEnumerable <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>,
                     GroupByDefaultEnumerator <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerator>
                     >(RefLocal(outerBridge), ref inner, outerKeySelector, innerKeySelector, resultSelector, comparer));
        }
 // SequenceEqual - GroupBySpecific, specific
 public bool SequenceEqual <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator, TGenInItem2, TGenEnumerable2, TGenEnumerator2>(
     GroupBySpecificEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator> first,
     GroupByDefaultEnumerable <TGenInItem2, TGenKey, TGenElement, TGenEnumerable2, TGenEnumerator2> second,
     IEqualityComparer <GroupingEnumerable <TGenKey, TGenElement> > comparer
     )
     where TGenEnumerable : struct, IStructEnumerable <TGenInItem, TGenEnumerator>
     where TGenEnumerator : struct, IStructEnumerator <TGenInItem>
     where TGenEnumerable2 : struct, IStructEnumerable <TGenInItem2, TGenEnumerator2>
     where TGenEnumerator2 : struct, IStructEnumerator <TGenInItem2>
 {
     return
         (CommonImplementation.SequenceEqual <
              GroupingEnumerable <TGenKey, TGenElement>,
              GroupBySpecificEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator>,
              GroupBySpecificEnumerator <TGenInItem, TGenKey, TGenElement, TGenEnumerator>,
              GroupByDefaultEnumerable <TGenInItem2, TGenKey, TGenElement, TGenEnumerable2, TGenEnumerator2>,
              GroupByDefaultEnumerator <TGenInItem2, TGenKey, TGenElement, TGenEnumerator2>
              >(ref first, ref second, comparer));
 }
     > Concat <TGenLookupKey, TGenLookupElement, TGenGroupByInItem2, TGenGroupByEnumerable2, TGenGroupByEnumerator2>(
     LookupSpecificEnumerable <TGenLookupKey, TGenLookupElement> first,
     GroupByDefaultEnumerable <TGenGroupByInItem2, TGenLookupKey, TGenLookupElement, TGenGroupByEnumerable2, TGenGroupByEnumerator2> second
     )
     where TGenGroupByEnumerable2 : struct, IStructEnumerable <TGenGroupByInItem2, TGenGroupByEnumerator2>
     where TGenGroupByEnumerator2 : struct, IStructEnumerator <TGenGroupByInItem2>
 {
     return
         (CommonImplementation.Concat <
              GroupingEnumerable <TGenLookupKey, TGenLookupElement>,
              LookupSpecificEnumerable <TGenLookupKey, TGenLookupElement>,
              LookupSpecificEnumerator <TGenLookupKey, TGenLookupElement>,
              GroupByDefaultEnumerable <TGenGroupByInItem2, TGenLookupKey, TGenLookupElement, TGenGroupByEnumerable2, TGenGroupByEnumerator2>,
              GroupByDefaultEnumerator <TGenGroupByInItem2, TGenLookupKey, TGenLookupElement, TGenGroupByEnumerator2>
              >(
              ref first,
              ref second
              ));
 }
     > Concat <TGenGroupByInItem, TGenLookupKey, TGenLookupElement, TGenGroupByEnumerable, TGenGroupByEnumerator>(
     GroupByDefaultEnumerable <TGenGroupByInItem, TGenLookupKey, TGenLookupElement, TGenGroupByEnumerable, TGenGroupByEnumerator> first,
     LookupSpecificEnumerable <TGenLookupKey, TGenLookupElement> second
     )
     where TGenGroupByEnumerable : struct, IStructEnumerable <TGenGroupByInItem, TGenGroupByEnumerator>
     where TGenGroupByEnumerator : struct, IStructEnumerator <TGenGroupByInItem>
 {
     return
         (CommonImplementation.Concat <
              GroupingEnumerable <TGenLookupKey, TGenLookupElement>,
              GroupByDefaultEnumerable <TGenGroupByInItem, TGenLookupKey, TGenLookupElement, TGenGroupByEnumerable, TGenGroupByEnumerator>,
              GroupByDefaultEnumerator <TGenGroupByInItem, TGenLookupKey, TGenLookupElement, TGenGroupByEnumerator>,
              LookupSpecificEnumerable <TGenLookupKey, TGenLookupElement>,
              LookupSpecificEnumerator <TGenLookupKey, TGenLookupElement>
              >(
              ref first,
              ref second
              ));
 }
     > Concat <TGenGroupByInItem, TGenKey, TGenElement, TGenGroupByEnumerable, TGenGroupByEnumerator>(
     PlaceholderEnumerable <GroupingEnumerable <TGenKey, TGenElement> > first,
     GroupByDefaultEnumerable <TGenGroupByInItem, TGenKey, TGenElement, TGenGroupByEnumerable, TGenGroupByEnumerator> second
     )
     where TGenGroupByEnumerable : struct, IStructEnumerable <TGenGroupByInItem, TGenGroupByEnumerator>
     where TGenGroupByEnumerator : struct, IStructEnumerator <TGenGroupByInItem>
 {
     return
         (CommonImplementation.Concat <
              GroupingEnumerable <TGenKey, TGenElement>,
              PlaceholderEnumerable <GroupingEnumerable <TGenKey, TGenElement> >,
              PlaceholderEnumerator <GroupingEnumerable <TGenKey, TGenElement> >,
              GroupByDefaultEnumerable <TGenGroupByInItem, TGenKey, TGenElement, TGenGroupByEnumerable, TGenGroupByEnumerator>,
              GroupByDefaultEnumerator <TGenGroupByInItem, TGenKey, TGenElement, TGenGroupByEnumerator>
              >(
              RefParam(first),
              ref second
              ));
 }
            > Except <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>(
            BuiltInEnumerable <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement> > first,
            GroupByDefaultEnumerable <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator> second
            )
            where TGenGroupByEnumerable : struct, IStructEnumerable <TGenGroupByInItem, TGenGroupByEnumerator>
            where TGenGroupByEnumerator : struct, IStructEnumerator <TGenGroupByInItem>
        {
            var firstBridge = Bridge(first, nameof(first));

            if (second.IsDefaultValue())
            {
                throw CommonImplementation.Uninitialized(nameof(second));
            }

            return(CommonImplementation.ExceptImpl <
                       GroupingEnumerable <TGenGroupByKey, TGenGroupByElement>,
                       BuiltInEnumerable <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement> >,
                       BuiltInEnumerator <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement> >,
                       GroupByDefaultEnumerable <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>,
                       GroupByDefaultEnumerator <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerator>
                       >(RefLocal(firstBridge), ref second));
        }
Exemplo n.º 10
0
        public bool SequenceEqual <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator>(
            BuiltInEnumerable <GroupingEnumerable <TGenKey, TGenElement> > first,
            GroupByDefaultEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator> second,
            IEqualityComparer <GroupingEnumerable <TGenKey, TGenElement> > comparer
            )
            where TGenEnumerable : struct, IStructEnumerable <TGenInItem, TGenEnumerator>
            where TGenEnumerator : struct, IStructEnumerator <TGenInItem>
        {
            var firstBridge = Bridge(first, nameof(second));

            if (second.IsDefaultValue())
            {
                throw CommonImplementation.Uninitialized(nameof(second));
            }

            return
                (CommonImplementation.SequenceEqualImpl <
                     GroupingEnumerable <TGenKey, TGenElement>,
                     BuiltInEnumerable <GroupingEnumerable <TGenKey, TGenElement> >,
                     BuiltInEnumerator <GroupingEnumerable <TGenKey, TGenElement> >,
                     GroupByDefaultEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator>,
                     GroupByDefaultEnumerator <TGenInItem, TGenKey, TGenElement, TGenEnumerator>
                     >(RefLocal(firstBridge), ref second, comparer));
        }
Exemplo n.º 11
0
 public static System.Collections.Generic.LinkedList <GroupingEnumerable <TKey, TItem> > LinkedList <TInItem, TKey, TItem, TInnerEnumeable, TInnerEnumerator>(GroupByDefaultEnumerable <TInItem, TKey, TItem, TInnerEnumeable, TInnerEnumerator> second)
     where TInnerEnumeable : struct, IStructEnumerable <TInItem, TInnerEnumerator>
     where TInnerEnumerator : struct, IStructEnumerator <TInItem>
 => LinkedListImpl <GroupingEnumerable <TKey, TItem>, GroupByDefaultEnumerable <TInItem, TKey, TItem, TInnerEnumeable, TInnerEnumerator>, GroupByDefaultEnumerator <TInItem, TKey, TItem, TInnerEnumerator> >(ref second);