> Zip <TOutItem, TFirstItem, TGenLookupKey, TGenLookupElement>( BuiltInEnumerable <TFirstItem> first, LookupSpecificEnumerable <TGenLookupKey, TGenLookupElement> second, Func <TFirstItem, GroupingEnumerable <TGenLookupKey, TGenLookupElement>, TOutItem> resultSelector ) { var firstBridged = Bridge(first, nameof(first)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } if (resultSelector == null) { throw CommonImplementation.ArgumentNull(nameof(resultSelector)); } return (CommonImplementation.ZipImpl < TOutItem, TFirstItem, GroupingEnumerable <TGenLookupKey, TGenLookupElement>, BuiltInEnumerable <TFirstItem>, BuiltInEnumerator <TFirstItem>, LookupSpecificEnumerable <TGenLookupKey, TGenLookupElement>, LookupSpecificEnumerator <TGenLookupKey, TGenLookupElement> >(RefLocal(firstBridged), ref second, resultSelector)); }
> Zip <TOutItem, TFirstItem>( BuiltInEnumerable <TFirstItem> first, ReverseRangeEnumerable second, Func <TFirstItem, int, TOutItem> resultSelector ) { var firstBridged = Bridge(first, nameof(first)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } if (resultSelector == null) { throw CommonImplementation.ArgumentNull(nameof(resultSelector)); } return (CommonImplementation.ZipImpl < TOutItem, TFirstItem, int, BuiltInEnumerable <TFirstItem>, BuiltInEnumerator <TFirstItem>, ReverseRangeEnumerable, ReverseRangeEnumerator >(RefLocal(firstBridged), ref second, resultSelector)); }
> Zip <TOutItem, TFirstItem, TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>( BuiltInEnumerable <TFirstItem> first, GroupByDefaultEnumerable <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator> second, Func <TFirstItem, GroupingEnumerable <TGenGroupByKey, TGenGroupByElement>, TOutItem> resultSelector ) where TGenGroupByEnumerable : struct, IStructEnumerable <TGenGroupByInItem, TGenGroupByEnumerator> where TGenGroupByEnumerator : struct, IStructEnumerator <TGenGroupByInItem> { var firstBridged = Bridge(first, nameof(first)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } if (resultSelector == null) { throw CommonImplementation.ArgumentNull(nameof(resultSelector)); } return (CommonImplementation.ZipImpl < TOutItem, TFirstItem, GroupingEnumerable <TGenGroupByKey, TGenGroupByElement>, BuiltInEnumerable <TFirstItem>, BuiltInEnumerator <TFirstItem>, GroupByDefaultEnumerable <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>, GroupByDefaultEnumerator <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerator> >(RefLocal(firstBridged), ref second, resultSelector)); }
public BoxedEnumerable <TItem> Box <TItem>(BuiltInEnumerable <TItem> source) { if (((object)source) == null) { return(Impl.EmptyCache <TItem> .BadBoxedEmpty); } var bridge = Bridge(source, nameof(source)); return((BoxedEnumerable <TItem>)bridge); }
public double?Average <TItem>(BuiltInEnumerable <TItem> source, Func <TItem, long?> selector) { var bridge = Bridge(source, nameof(source)); if (selector == null) { throw CommonImplementation.ArgumentNull(nameof(selector)); } return(CommonImplementation.AverageSelectorImpl <TItem, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem> >(RefLocal(bridge), selector)); }
// SequenceEqual, specific public bool SequenceEqual <TItem>(BuiltInEnumerable <TItem> first, BuiltInEnumerable <TItem> second, IEqualityComparer <TItem> comparer) { var firstBridge = Bridge(first, nameof(second)); var secondBridge = Bridge(second, nameof(second)); return (CommonImplementation.SequenceEqualImpl < TItem, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem>, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem> >(RefLocal(firstBridge), RefLocal(secondBridge), comparer)); }
public bool SequenceEqual <TItem>(BuiltInEnumerable <TItem> first, PlaceholderEnumerable <TItem> second, IEqualityComparer <TItem> comparer) { var firstBridge = Bridge(first, nameof(second)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } return (CommonImplementation.SequenceEqualImpl < TItem, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem>, PlaceholderEnumerable <TItem>, PlaceholderEnumerator <TItem> >(RefLocal(firstBridge), RefParam(second), comparer)); }
> Join <TOutItem, TJoinKeyItem, TJoinLeftItem, TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>( BuiltInEnumerable <TJoinLeftItem> outer, GroupBySpecificEnumerable <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>, GroupBySpecificEnumerable <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>, GroupBySpecificEnumerator <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerator> >(RefLocal(outerBridge), ref inner, outerKeySelector, innerKeySelector, resultSelector, comparer)); }
> Except <TGenGroupByKey, TGenGroupByElement>( BuiltInEnumerable <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement> > first, LookupSpecificEnumerable <TGenGroupByKey, TGenGroupByElement> second ) { 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> >, LookupSpecificEnumerable <TGenGroupByKey, TGenGroupByElement>, LookupSpecificEnumerator <TGenGroupByKey, TGenGroupByElement> >(RefLocal(firstBridge), ref second)); }
> Except( BuiltInEnumerable <int> first, ReverseRangeEnumerable second ) { var firstBridge = Bridge(first, nameof(first)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } return(CommonImplementation.ExceptImpl < int, BuiltInEnumerable <int>, BuiltInEnumerator <int>, ReverseRangeEnumerable, ReverseRangeEnumerator >(RefLocal(firstBridge), ref second)); }
> Join <TOutItem, TJoinKeyItem, TJoinLeftItem, TGenLookupKey, TGenLookupElement>( BuiltInEnumerable <TJoinLeftItem> outer, LookupDefaultEnumerable <TGenLookupKey, TGenLookupElement> inner, Func <TJoinLeftItem, TJoinKeyItem> outerKeySelector, Func <GroupingEnumerable <TGenLookupKey, TGenLookupElement>, TJoinKeyItem> innerKeySelector, Func <TJoinLeftItem, GroupingEnumerable <TGenLookupKey, TGenLookupElement>, TOutItem> resultSelector, IEqualityComparer <TJoinKeyItem> comparer ) { 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 <TGenLookupKey, TGenLookupElement>, LookupDefaultEnumerable <TGenLookupKey, TGenLookupElement>, LookupDefaultEnumerator <TGenLookupKey, TGenLookupElement> >(RefLocal(outerBridge), ref inner, outerKeySelector, innerKeySelector, resultSelector, comparer)); }
> Join <TOutItem, TJoinKeyItem, TJoinLeftItem>( BuiltInEnumerable <TJoinLeftItem> outer, ReverseRangeEnumerable inner, Func <TJoinLeftItem, TJoinKeyItem> outerKeySelector, Func <int, TJoinKeyItem> innerKeySelector, Func <TJoinLeftItem, int, TOutItem> resultSelector, IEqualityComparer <TJoinKeyItem> comparer ) { 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>, int, ReverseRangeEnumerable, ReverseRangeEnumerator >(RefLocal(outerBridge), ref inner, outerKeySelector, innerKeySelector, resultSelector, comparer)); }
> GroupJoin <TResult, TGroupJoinKey, TOuter, TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>( BuiltInEnumerable <TOuter> outer, GroupByDefaultEnumerable <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator> inner, Func <TOuter, TGroupJoinKey> outerKeySelector, Func <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement>, TGroupJoinKey> innerKeySelector, Func <TOuter, GroupedEnumerable <TGroupJoinKey, GroupingEnumerable <TGenGroupByKey, TGenGroupByElement> >, TResult> resultSelector ) 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.GroupJoinImpl < TResult, TGroupJoinKey, TOuter, BuiltInEnumerable <TOuter>, BuiltInEnumerator <TOuter>, GroupingEnumerable <TGenGroupByKey, TGenGroupByElement>, GroupByDefaultEnumerable <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerable, TGenGroupByEnumerator>, GroupByDefaultEnumerator <TGenGroupByInItem, TGenGroupByKey, TGenGroupByElement, TGenGroupByEnumerator> >(RefLocal(outerBridge), ref inner, outerKeySelector, innerKeySelector, resultSelector)); }
> Union <TGenGroupByKey, TGenGroupByElement>( BuiltInEnumerable <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement> > first, LookupDefaultEnumerable <TGenGroupByKey, TGenGroupByElement> second, IEqualityComparer <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement> > comparer ) { var firstBridge = Bridge(first, nameof(first)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } return(CommonImplementation.UnionImpl < GroupingEnumerable <TGenGroupByKey, TGenGroupByElement>, BuiltInEnumerable <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement> >, BuiltInEnumerator <GroupingEnumerable <TGenGroupByKey, TGenGroupByElement> >, LookupDefaultEnumerable <TGenGroupByKey, TGenGroupByElement>, LookupDefaultEnumerator <TGenGroupByKey, TGenGroupByElement> >(RefLocal(firstBridge), ref second, comparer)); }
public bool SequenceEqual( BuiltInEnumerable <int> first, RangeEnumerable second ) { var firstBridge = Bridge(first, nameof(second)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } return (CommonImplementation.SequenceEqualImpl < int, BuiltInEnumerable <int>, BuiltInEnumerator <int>, RangeEnumerable, RangeEnumerator >(RefLocal(firstBridge), ref second)); }
> Union( BuiltInEnumerable <int> first, RangeEnumerable second, IEqualityComparer <int> comparer ) { var firstBridge = Bridge(first, nameof(first)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } return(CommonImplementation.UnionImpl < int, BuiltInEnumerable <int>, BuiltInEnumerator <int>, RangeEnumerable, RangeEnumerator >(RefLocal(firstBridge), ref second, comparer)); }
public bool SequenceEqual <TGenKey, TGenElement>( BuiltInEnumerable <GroupingEnumerable <TGenKey, TGenElement> > first, LookupSpecificEnumerable <TGenKey, TGenElement> second ) { 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> >, LookupSpecificEnumerable <TGenKey, TGenElement>, LookupSpecificEnumerator <TGenKey, TGenElement> >(RefLocal(firstBridge), ref second)); }
> GroupJoin <TResult, TGroupJoinKey, TOuter>( BuiltInEnumerable <TOuter> outer, RangeEnumerable inner, Func <TOuter, TGroupJoinKey> outerKeySelector, Func <int, TGroupJoinKey> innerKeySelector, Func <TOuter, GroupedEnumerable <TGroupJoinKey, int>, TResult> resultSelector, IEqualityComparer <TGroupJoinKey> comparer ) { 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.GroupJoinImpl < TResult, TGroupJoinKey, TOuter, BuiltInEnumerable <TOuter>, BuiltInEnumerator <TOuter>, int, RangeEnumerable, RangeEnumerator >(RefLocal(outerBridge), ref inner, outerKeySelector, innerKeySelector, resultSelector, comparer)); }
> Join <TOutItem, TJoinKeyItem, TJoinLeftItem, TJoinRightItem>( BuiltInEnumerable <TJoinLeftItem> outer, PlaceholderEnumerable <TJoinRightItem> inner, Func <TJoinLeftItem, TJoinKeyItem> outerKeySelector, Func <TJoinRightItem, TJoinKeyItem> innerKeySelector, Func <TJoinLeftItem, TJoinRightItem, TOutItem> resultSelector ) { 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>, TJoinRightItem, PlaceholderEnumerable <TJoinRightItem>, PlaceholderEnumerator <TJoinRightItem> >(RefLocal(outerBridge), RefParam(inner), outerKeySelector, innerKeySelector, resultSelector)); }
> 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)); }
> GroupJoin <TResult, TGroupJoinKey, TOuter, TGenLookupKey, TGenLookupElement>( BuiltInEnumerable <TOuter> outer, LookupSpecificEnumerable <TGenLookupKey, TGenLookupElement> inner, Func <TOuter, TGroupJoinKey> outerKeySelector, Func <GroupingEnumerable <TGenLookupKey, TGenLookupElement>, TGroupJoinKey> innerKeySelector, Func <TOuter, GroupedEnumerable <TGroupJoinKey, GroupingEnumerable <TGenLookupKey, TGenLookupElement> >, TResult> resultSelector ) { 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.GroupJoinImpl < TResult, TGroupJoinKey, TOuter, BuiltInEnumerable <TOuter>, BuiltInEnumerator <TOuter>, GroupingEnumerable <TGenLookupKey, TGenLookupElement>, LookupSpecificEnumerable <TGenLookupKey, TGenLookupElement>, LookupSpecificEnumerator <TGenLookupKey, TGenLookupElement> >(RefLocal(outerBridge), ref inner, outerKeySelector, innerKeySelector, resultSelector)); }
> GroupJoin <TResult, TGroupJoinKey, TOuter, TInner>( BuiltInEnumerable <TOuter> outer, PlaceholderEnumerable <TInner> inner, Func <TOuter, TGroupJoinKey> outerKeySelector, Func <TInner, TGroupJoinKey> innerKeySelector, Func <TOuter, GroupedEnumerable <TGroupJoinKey, TInner>, TResult> resultSelector ) { 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.GroupJoinImpl < TResult, TGroupJoinKey, TOuter, BuiltInEnumerable <TOuter>, BuiltInEnumerator <TOuter>, TInner, PlaceholderEnumerable <TInner>, PlaceholderEnumerator <TInner> >(RefLocal(outerBridge), RefParam(inner), outerKeySelector, innerKeySelector, resultSelector)); }
public bool SequenceEqual <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator>( BuiltInEnumerable <GroupingEnumerable <TGenKey, TGenElement> > first, GroupBySpecificEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator> second ) 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> >, GroupBySpecificEnumerable <TGenInItem, TGenKey, TGenElement, TGenEnumerable, TGenEnumerator>, GroupBySpecificEnumerator <TGenInItem, TGenKey, TGenElement, TGenEnumerator> >(RefLocal(firstBridge), ref second)); }
> GroupJoin <TResult, TGroupJoinKey, TOuter, TInner>( BuiltInEnumerable <TOuter> outer, BuiltInEnumerable <TInner> inner, Func <TOuter, TGroupJoinKey> outerKeySelector, Func <TInner, TGroupJoinKey> innerKeySelector, Func <TOuter, GroupedEnumerable <TGroupJoinKey, TInner>, TResult> resultSelector, IEqualityComparer <TGroupJoinKey> comparer ) { var outerBridge = Bridge(outer, nameof(outer)); var innerBridge = Bridge(inner, 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.GroupJoinImpl < TResult, TGroupJoinKey, TOuter, BuiltInEnumerable <TOuter>, BuiltInEnumerator <TOuter>, TInner, BuiltInEnumerable <TInner>, BuiltInEnumerator <TInner> >(RefLocal(outerBridge), RefLocal(innerBridge), outerKeySelector, innerKeySelector, resultSelector, comparer)); }
> Join <TOutItem, TJoinKeyItem, TJoinLeftItem, TJoinRightItem>( BuiltInEnumerable <TJoinLeftItem> outer, BuiltInEnumerable <TJoinRightItem> inner, Func <TJoinLeftItem, TJoinKeyItem> outerKeySelector, Func <TJoinRightItem, TJoinKeyItem> innerKeySelector, Func <TJoinLeftItem, TJoinRightItem, TOutItem> resultSelector, IEqualityComparer <TJoinKeyItem> comparer ) { var outerBridge = Bridge(outer, nameof(outer)); var innerBridge = Bridge(inner, 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>, TJoinRightItem, BuiltInEnumerable <TJoinRightItem>, BuiltInEnumerator <TJoinRightItem> >(RefLocal(outerBridge), RefLocal(innerBridge), outerKeySelector, innerKeySelector, resultSelector, comparer)); }
// Except specific public ExceptSpecificEnumerable <TItem, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem>, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem> > Except <TItem>(BuiltInEnumerable <TItem> first, BuiltInEnumerable <TItem> second, IEqualityComparer <TItem> comparer) { var firstBridge = Bridge(first, nameof(first)); var secondBridge = Bridge(second, nameof(second)); return(CommonImplementation.ExceptImpl < TItem, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem>, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem> >(RefLocal(firstBridge), RefLocal(secondBridge), comparer)); }
public ExceptDefaultEnumerable <TItem, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem>, PlaceholderEnumerable <TItem>, PlaceholderEnumerator <TItem> > Except <TItem>(BuiltInEnumerable <TItem> first, PlaceholderEnumerable <TItem> second) { var firstBridge = Bridge(first, nameof(first)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } return(CommonImplementation.ExceptImpl < TItem, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem>, PlaceholderEnumerable <TItem>, PlaceholderEnumerator <TItem> >(RefLocal(firstBridge), RefParam(second))); }
// Except public ExceptDefaultEnumerable <TItem, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem>, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem> > Except <TItem>(BuiltInEnumerable <TItem> first, BuiltInEnumerable <TItem> second) { var firstBridge = Bridge(first, nameof(first)); var secondBridge = Bridge(second, nameof(second)); return(CommonImplementation.ExceptImpl < TItem, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem>, BuiltInEnumerable <TItem>, BuiltInEnumerator <TItem> >(RefLocal(firstBridge), RefLocal(secondBridge))); }
// Zip public ZipEnumerable <TOutItem, TFirstItem, TSecondItem, BuiltInEnumerable <TFirstItem>, BuiltInEnumerator <TFirstItem>, BuiltInEnumerable <TSecondItem>, BuiltInEnumerator <TSecondItem> > Zip <TOutItem, TFirstItem, TSecondItem>(BuiltInEnumerable <TFirstItem> first, BuiltInEnumerable <TSecondItem> second, Func <TFirstItem, TSecondItem, TOutItem> resultSelector) { var firstBridged = Bridge(first, nameof(first)); var secondBridged = Bridge(second, nameof(second)); if (resultSelector == null) { throw CommonImplementation.ArgumentNull(nameof(resultSelector)); } return (CommonImplementation.ZipImpl < TOutItem, TFirstItem, TSecondItem, BuiltInEnumerable <TFirstItem>, BuiltInEnumerator <TFirstItem>, BuiltInEnumerable <TSecondItem>, BuiltInEnumerator <TSecondItem> >(RefLocal(firstBridged), RefLocal(secondBridged), resultSelector)); }
// HACK: the "Gen" part of each generic parameter is necessary to avoid some name collisions in code gen public ZipEnumerable <TGenOutItem, TGenFirstItem, TGenSecondItem, BuiltInEnumerable <TGenFirstItem>, BuiltInEnumerator <TGenFirstItem>, PlaceholderEnumerable <TGenSecondItem>, PlaceholderEnumerator <TGenSecondItem> > Zip <TGenOutItem, TGenFirstItem, TGenSecondItem>(BuiltInEnumerable <TGenFirstItem> first, PlaceholderEnumerable <TGenSecondItem> second, Func <TGenFirstItem, TGenSecondItem, TGenOutItem> resultSelector) { var firstBridged = Bridge(first, nameof(first)); if (second.IsDefaultValue()) { throw CommonImplementation.Uninitialized(nameof(second)); } if (resultSelector == null) { throw CommonImplementation.ArgumentNull(nameof(resultSelector)); } return (CommonImplementation.ZipImpl < TGenOutItem, TGenFirstItem, TGenSecondItem, BuiltInEnumerable <TGenFirstItem>, BuiltInEnumerator <TGenFirstItem>, PlaceholderEnumerable <TGenSecondItem>, PlaceholderEnumerator <TGenSecondItem> >(RefLocal(firstBridged), RefParam(second), resultSelector)); }