Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
473 lines (414 sloc) 47.1 KB
using System.Collections.Generic;
namespace LinqAF.Impl
{
interface IConcat<TItem, TLeftEnumerable, TLeftEnumerator>
where TLeftEnumerable: struct, IStructEnumerable<TItem, TLeftEnumerator>
where TLeftEnumerator: struct, IStructEnumerator<TItem>
{
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, BoxedEnumerable<TItem>, BoxedEnumerator<TItem>> Concat(BoxedEnumerable<TItem> second);
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, IdentityEnumerable<TItem, IEnumerable<TItem>, IEnumerableBridger<TItem>, IdentityEnumerator<TItem>>, IdentityEnumerator<TItem>> Concat(IEnumerable<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, Dictionary<TItem, TDictionaryValue>.KeyCollection, DictionaryKeysBridger<TItem, TDictionaryValue>, DictionaryKeysEnumerator<TItem, TDictionaryValue>>,
DictionaryKeysEnumerator<TItem, TDictionaryValue>
> Concat<TDictionaryValue>(Dictionary<TItem, TDictionaryValue>.KeyCollection second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, Dictionary<TConcat_DictionaryKey, TItem>.ValueCollection, DictionaryValuesBridger<TConcat_DictionaryKey, TItem>, DictionaryValuesEnumerator<TConcat_DictionaryKey, TItem>>,
DictionaryValuesEnumerator<TConcat_DictionaryKey, TItem>
> Concat<TConcat_DictionaryKey>(Dictionary<TConcat_DictionaryKey, TItem>.ValueCollection second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, HashSet<TItem>, HashSetBridger<TItem>, HashSetEnumerator<TItem>>,
HashSetEnumerator<TItem>
> Concat(HashSet<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, LinkedList<TItem>, LinkedListBridger<TItem>, LinkedListEnumerator<TItem>>,
LinkedListEnumerator<TItem>
> Concat(LinkedList<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, List<TItem>, ListBridger<TItem>, ListEnumerator<TItem>>,
ListEnumerator<TItem>
> Concat(List<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, Queue<TItem>, QueueBridger<TItem>, QueueEnumerator<TItem>>,
QueueEnumerator<TItem>
> Concat(Queue<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, SortedDictionary<TItem, TConcat_DictionaryValue>.KeyCollection, SortedDictionaryKeysBridger<TItem, TConcat_DictionaryValue>, SortedDictionaryKeysEnumerator<TItem, TConcat_DictionaryValue>>,
SortedDictionaryKeysEnumerator<TItem, TConcat_DictionaryValue>
> Concat<TConcat_DictionaryValue>(SortedDictionary<TItem, TConcat_DictionaryValue>.KeyCollection second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, SortedDictionary<TConcat_DictionaryKey, TItem>.ValueCollection, SortedDictionaryValuesBridger<TConcat_DictionaryKey, TItem>, SortedDictionaryValuesEnumerator<TConcat_DictionaryKey, TItem>>,
SortedDictionaryValuesEnumerator<TConcat_DictionaryKey, TItem>
> Concat<TConcat_DictionaryKey>(SortedDictionary<TConcat_DictionaryKey, TItem>.ValueCollection second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, SortedSet<TItem>, SortedSetBridger<TItem>, SortedSetEnumerator<TItem>>,
SortedSetEnumerator<TItem>
> Concat(SortedSet<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, Stack<TItem>, StackBridger<TItem>, StackEnumerator<TItem>>,
StackEnumerator<TItem>
> Concat(Stack<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, TItem[], ArrayBridger<TItem>, ArrayEnumerator<TItem>>,
ArrayEnumerator<TItem>
> Concat(TItem[] second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
IdentityEnumerable<TItem, TConcat_IdentityBridgeType, TConcat_IdentityBridger, TConcat_IdentityEnumerator>,
TConcat_IdentityEnumerator
> Concat<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;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, ConcatEnumerable<TItem, TInnerLeftEnumerable, TInnerLeftEnumerator, TInnerRightEnumerable, TInnerRightEnumerator>, ConcatEnumerator<TItem, TInnerLeftEnumerator, TInnerRightEnumerator>> Concat<TInnerLeftEnumerable, TInnerLeftEnumerator, TInnerRightEnumerable, TInnerRightEnumerator>(ConcatEnumerable<TItem, TInnerLeftEnumerable, TInnerLeftEnumerator, TInnerRightEnumerable, TInnerRightEnumerator> second)
where TInnerLeftEnumerable : struct, IStructEnumerable<TItem, TInnerLeftEnumerator>
where TInnerLeftEnumerator : struct, IStructEnumerator<TItem>
where TInnerRightEnumerable : struct, IStructEnumerable<TItem, TInnerRightEnumerator>
where TInnerRightEnumerator : struct, IStructEnumerator<TItem>;
TLeftEnumerable Concat(EmptyEnumerable<TItem> second);
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, RepeatEnumerable<TItem>, RepeatEnumerator<TItem>> Concat(RepeatEnumerable<TItem> second);
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectEnumerable<TConcat_SelectInItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, SelectEnumerator<TConcat_SelectInItem, TItem, TConcat_InnerEnumerator>> Concat<TConcat_SelectInItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>(SelectEnumerable<TConcat_SelectInItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TConcat_SelectInItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TConcat_SelectInItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectIndexedEnumerable<TConcat_SelectInItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, SelectIndexedEnumerator<TConcat_SelectInItem, TItem, TConcat_InnerEnumerator>> Concat<TConcat_SelectInItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>(SelectIndexedEnumerable<TConcat_SelectInItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TConcat_SelectInItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TConcat_SelectInItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectManyBridgeEnumerable<TConcat_SelectManyInItem, TItem, TConcat_BridgeType, TConcat_Bridger, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_ProjectedEnumerator>, SelectManyBridgeEnumerator<TConcat_SelectManyInItem, TItem, TConcat_BridgeType, TConcat_Bridger, TConcat_InnerEnumerator, TConcat_ProjectedEnumerator>> Concat<TConcat_SelectManyInItem, TConcat_BridgeType, TConcat_Bridger, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_ProjectedEnumerator>(SelectManyBridgeEnumerable<TConcat_SelectManyInItem, TItem, TConcat_BridgeType, TConcat_Bridger, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_ProjectedEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TConcat_SelectManyInItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TConcat_SelectManyInItem>
where TConcat_ProjectedEnumerator : struct, IStructEnumerator<TItem>
where TConcat_Bridger: struct, IStructBridger<TItem, TConcat_BridgeType, TConcat_ProjectedEnumerator>
where TConcat_BridgeType : class;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectManyIndexedBridgeEnumerable<TConcat_SelectManyInItem, TItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerator>, SelectManyIndexedBridgeEnumerator<TConcat_SelectManyInItem, TItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerator>> Concat<TConcat_SelectManyInItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerator>(SelectManyIndexedBridgeEnumerable<TConcat_SelectManyInItem, TItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerator> second)
where TConcat_SelectManyInnerEnumerable : struct, IStructEnumerable<TConcat_SelectManyInItem, TConcat_SelectManyInnerEnumerator>
where TConcat_SelectManyInnerEnumerator : struct, IStructEnumerator<TConcat_SelectManyInItem>
where TConcat_SelectManyProjectedEnumerator : struct, IStructEnumerator<TItem>
where TConcat_SelectManyBridger: struct, IStructBridger<TItem, TConcat_SelectManyBridgeType, TConcat_SelectManyProjectedEnumerator>
where TConcat_SelectManyBridgeType : class;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
SelectManyCollectionBridgeEnumerable<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_SelectManyProjectedEnumerator>,
SelectManyCollectionBridgeEnumerator<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_InnerEnumerator, TConcat_SelectManyProjectedEnumerator>
> Concat<TConcat_SelectManyInItem, TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_SelectManyProjectedEnumerator>(
SelectManyCollectionBridgeEnumerable<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_SelectManyProjectedEnumerator> second
)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TConcat_SelectManyInItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TConcat_SelectManyInItem>
where TConcat_SelectManyProjectedEnumerator : struct, IStructEnumerator<TConcat_CollectionItem>
where TConcat_SelectManyBridger: struct, IStructBridger<TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyProjectedEnumerator>
where TConcat_SelectManyBridgeType : class;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
SelectManyCollectionIndexedBridgeEnumerable<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerator>,
SelectManyCollectionIndexedBridgeEnumerator<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerator>
> Concat<TConcat_SelectManyInItem, TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerator>(
SelectManyCollectionIndexedBridgeEnumerable<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyBridger, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerator> second
)
where TConcat_SelectManyInnerEnumerable : struct, IStructEnumerable<TConcat_SelectManyInItem, TConcat_SelectManyInnerEnumerator>
where TConcat_SelectManyInnerEnumerator : struct, IStructEnumerator<TConcat_SelectManyInItem>
where TConcat_SelectManyProjectedEnumerator : struct, IStructEnumerator<TConcat_CollectionItem>
where TConcat_SelectManyBridger : struct, IStructBridger<TConcat_CollectionItem, TConcat_SelectManyBridgeType, TConcat_SelectManyProjectedEnumerator>
where TConcat_SelectManyBridgeType : class;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectManyEnumerable<TConcat_SelectManyInItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_ProjectedEnumerable, TConcat_ProjectedEnumerator>, SelectManyEnumerator<TConcat_SelectManyInItem, TItem, TConcat_InnerEnumerator, TConcat_ProjectedEnumerable, TConcat_ProjectedEnumerator>> Concat<TConcat_SelectManyInItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_ProjectedEnumerable, TConcat_ProjectedEnumerator>(SelectManyEnumerable<TConcat_SelectManyInItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_ProjectedEnumerable, TConcat_ProjectedEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TConcat_SelectManyInItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TConcat_SelectManyInItem>
where TConcat_ProjectedEnumerable : struct, IStructEnumerable<TItem, TConcat_ProjectedEnumerator>
where TConcat_ProjectedEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectManyIndexedEnumerable<TConcat_SelectManyInItem, TItem, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerable, TConcat_SelectManyProjectedEnumerator>, SelectManyIndexedEnumerator<TConcat_SelectManyInItem, TItem, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerable, TConcat_SelectManyProjectedEnumerator>> Concat<TConcat_SelectManyInItem, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerable, TConcat_SelectManyProjectedEnumerator>(SelectManyIndexedEnumerable<TConcat_SelectManyInItem, TItem, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerable, TConcat_SelectManyProjectedEnumerator> second)
where TConcat_SelectManyInnerEnumerable : struct, IStructEnumerable<TConcat_SelectManyInItem, TConcat_SelectManyInnerEnumerator>
where TConcat_SelectManyInnerEnumerator : struct, IStructEnumerator<TConcat_SelectManyInItem>
where TConcat_SelectManyProjectedEnumerable : struct, IStructEnumerable<TItem, TConcat_SelectManyProjectedEnumerator>
where TConcat_SelectManyProjectedEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectManyCollectionEnumerable<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_ProjectedEnumerable, TConcat_ProjectedEnumerator>, SelectManyCollectionEnumerator<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_InnerEnumerator, TConcat_ProjectedEnumerable, TConcat_ProjectedEnumerator>> Concat<TConcat_SelectManyInItem, TConcat_CollectionItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_ProjectedEnumerable, TConcat_ProjectedEnumerator>(SelectManyCollectionEnumerable<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator, TConcat_ProjectedEnumerable, TConcat_ProjectedEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TConcat_SelectManyInItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TConcat_SelectManyInItem>
where TConcat_ProjectedEnumerable : struct, IStructEnumerable<TConcat_CollectionItem, TConcat_ProjectedEnumerator>
where TConcat_ProjectedEnumerator : struct, IStructEnumerator<TConcat_CollectionItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectManyCollectionIndexedEnumerable<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerable, TConcat_SelectManyProjectedEnumerator>, SelectManyCollectionIndexedEnumerator<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerable, TConcat_SelectManyProjectedEnumerator>> Concat<TConcat_SelectManyInItem, TConcat_CollectionItem, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerable, TConcat_SelectManyProjectedEnumerator>(SelectManyCollectionIndexedEnumerable<TConcat_SelectManyInItem, TItem, TConcat_CollectionItem, TConcat_SelectManyInnerEnumerable, TConcat_SelectManyInnerEnumerator, TConcat_SelectManyProjectedEnumerable, TConcat_SelectManyProjectedEnumerator> second)
where TConcat_SelectManyInnerEnumerable : struct, IStructEnumerable<TConcat_SelectManyInItem, TConcat_SelectManyInnerEnumerator>
where TConcat_SelectManyInnerEnumerator : struct, IStructEnumerator<TConcat_SelectManyInItem>
where TConcat_SelectManyProjectedEnumerable : struct, IStructEnumerable<TConcat_CollectionItem, TConcat_SelectManyProjectedEnumerator>
where TConcat_SelectManyProjectedEnumerator : struct, IStructEnumerator<TConcat_CollectionItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, WhereEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, WhereEnumerator<TItem, TConcat_InnerEnumerator>> Concat<TConcat_InnerEnumerable, TConcat_InnerEnumerator>(WhereEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, WhereIndexedEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, WhereIndexedEnumerator<TItem, TConcat_InnerEnumerator>> Concat<TConcat_InnerEnumerable, TConcat_InnerEnumerator>(WhereIndexedEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, DefaultIfEmptyDefaultEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, DefaultIfEmptyDefaultEnumerator<TItem, TConcat_InnerEnumerator>> Concat<TConcat_InnerEnumerable, TConcat_InnerEnumerator>(DefaultIfEmptyDefaultEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, DefaultIfEmptySpecificEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, DefaultIfEmptySpecificEnumerator<TItem, TConcat_InnerEnumerator>> Concat<TConcat_InnerEnumerable, TConcat_InnerEnumerator>(DefaultIfEmptySpecificEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, TakeEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, TakeEnumerator<TItem, TConcat_InnerEnumerator>> Concat<TConcat_InnerEnumerable, TConcat_InnerEnumerator>(TakeEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, TakeWhileEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, TakeWhileEnumerator<TItem, TConcat_InnerEnumerator>> Concat<TConcat_InnerEnumerable, TConcat_InnerEnumerator>(TakeWhileEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, TakeWhileIndexedEnumerable<TItem, TInnerEnumerable, TInnerEnumerator>, TakeWhileIndexedEnumerator<TItem, TInnerEnumerator>> Concat<TInnerEnumerable, TInnerEnumerator>(TakeWhileIndexedEnumerable<TItem, TInnerEnumerable, TInnerEnumerator> second)
where TInnerEnumerable : struct, IStructEnumerable<TItem, TInnerEnumerator>
where TInnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SkipEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, SkipEnumerator<TItem, TConcat_InnerEnumerator>> Concat<TConcat_InnerEnumerable, TConcat_InnerEnumerator>(SkipEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SkipWhileEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, SkipWhileEnumerator<TItem, TConcat_InnerEnumerator>> Concat<TConcat_InnerEnumerable, TConcat_InnerEnumerator>(SkipWhileEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SkipWhileIndexedEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, SkipWhileIndexedEnumerator<TItem, TConcat_InnerEnumerator>> Concat<TConcat_InnerEnumerable, TConcat_InnerEnumerator>(SkipWhileIndexedEnumerable<TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, CastEnumerable<TConcat_InItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, CastEnumerator<TConcat_InItem, TItem, TConcat_InnerEnumerator>> Concat<TConcat_InItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>(CastEnumerable<TConcat_InItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TConcat_InItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TConcat_InItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, OfTypeEnumerable<TConcat_InItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>, OfTypeEnumerator<TConcat_InItem, TItem, TConcat_InnerEnumerator>> Concat<TConcat_InItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator>(OfTypeEnumerable<TConcat_InItem, TItem, TConcat_InnerEnumerable, TConcat_InnerEnumerator> second)
where TConcat_InnerEnumerable : struct, IStructEnumerable<TConcat_InItem, TConcat_InnerEnumerator>
where TConcat_InnerEnumerator : struct, IStructEnumerator<TConcat_InItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, ZipEnumerable<TItem, TConcat_ZipFirstItem, TConcat_ZipSecondItem, TConcat_ZipFirstEnumerable, TConcat_ZipFirstEnumerator, TConcat_ZipSecondEnumerable, TConcat_ZipSecondEnumerator>, ZipEnumerator<TItem, TConcat_ZipFirstItem, TConcat_ZipSecondItem, TConcat_ZipFirstEnumerator, TConcat_ZipSecondEnumerator>> Concat<TConcat_ZipFirstItem, TConcat_ZipSecondItem, TConcat_ZipFirstEnumerable, TConcat_ZipFirstEnumerator, TConcat_ZipSecondEnumerable, TConcat_ZipSecondEnumerator>(ZipEnumerable<TItem, TConcat_ZipFirstItem, TConcat_ZipSecondItem, TConcat_ZipFirstEnumerable, TConcat_ZipFirstEnumerator, TConcat_ZipSecondEnumerable, TConcat_ZipSecondEnumerator> second)
where TConcat_ZipFirstEnumerable : struct, IStructEnumerable<TConcat_ZipFirstItem, TConcat_ZipFirstEnumerator>
where TConcat_ZipFirstEnumerator : struct, IStructEnumerator<TConcat_ZipFirstItem>
where TConcat_ZipSecondEnumerable : struct, IStructEnumerable<TConcat_ZipSecondItem, TConcat_ZipSecondEnumerator>
where TConcat_ZipSecondEnumerator : struct, IStructEnumerator<TConcat_ZipSecondItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectSelectEnumerable<TItem, TConcat_SelectInnerItem, TConcat_SelectInnerEnumerable, TConcat_SelectInnerEnumerator, TConcat_SelectProjection>, SelectSelectEnumerator<TItem, TConcat_SelectInnerItem, TConcat_SelectInnerEnumerator, TConcat_SelectProjection>> Concat<TConcat_SelectInnerItem, TConcat_SelectInnerEnumerable, TConcat_SelectInnerEnumerator, TConcat_SelectProjection>(SelectSelectEnumerable<TItem, TConcat_SelectInnerItem, TConcat_SelectInnerEnumerable, TConcat_SelectInnerEnumerator, TConcat_SelectProjection> second)
where TConcat_SelectInnerEnumerable : struct, IStructEnumerable<TConcat_SelectInnerItem, TConcat_SelectInnerEnumerator>
where TConcat_SelectInnerEnumerator : struct, IStructEnumerator<TConcat_SelectInnerItem>
where TConcat_SelectProjection : struct, IStructProjection<TItem, TConcat_SelectInnerItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, SelectWhereEnumerable<TItem, TConcat_SelectInnerItem, TConcat_SelectInnerEnumerable, TConcat_SelectInnerEnumerator, TConcat_SelectProjection, TConcat_SelectPredicate>, SelectWhereEnumerator<TItem, TConcat_SelectInnerItem, TConcat_SelectInnerEnumerator, TConcat_SelectProjection, TConcat_SelectPredicate>> Concat<TConcat_SelectInnerItem, TConcat_SelectInnerEnumerable, TConcat_SelectInnerEnumerator, TConcat_SelectProjection, TConcat_SelectPredicate>(SelectWhereEnumerable<TItem, TConcat_SelectInnerItem, TConcat_SelectInnerEnumerable, TConcat_SelectInnerEnumerator, TConcat_SelectProjection, TConcat_SelectPredicate> second)
where TConcat_SelectInnerEnumerable : struct, IStructEnumerable<TConcat_SelectInnerItem, TConcat_SelectInnerEnumerator>
where TConcat_SelectInnerEnumerator : struct, IStructEnumerator<TConcat_SelectInnerItem>
where TConcat_SelectPredicate : struct, IStructPredicate<TItem>
where TConcat_SelectProjection : struct, IStructProjection<TItem, TConcat_SelectInnerItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, WhereWhereEnumerable<TItem, TConcat_WhereInnerEnumerable, TConcat_WhereInnerEnumerator, TConcat_WherePredicate>, WhereWhereEnumerator<TItem, TConcat_WhereInnerEnumerator, TConcat_WherePredicate>> Concat<TConcat_WhereInnerEnumerable, TConcat_WhereInnerEnumerator, TConcat_WherePredicate>(WhereWhereEnumerable<TItem, TConcat_WhereInnerEnumerable, TConcat_WhereInnerEnumerator, TConcat_WherePredicate> second)
where TConcat_WhereInnerEnumerable : struct, IStructEnumerable<TItem, TConcat_WhereInnerEnumerator>
where TConcat_WhereInnerEnumerator : struct, IStructEnumerator<TItem>
where TConcat_WherePredicate : struct, IStructPredicate<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, WhereSelectEnumerable<TItem, TConcat_WhereInnerItem, TConcat_WhereInnerEnumerable, TConcat_WhereInnerEnumerator, TConcat_WherePredicate, TConcat_WhereProjection>, WhereSelectEnumerator<TItem, TConcat_WhereInnerItem, TConcat_WhereInnerEnumerator, TConcat_WherePredicate, TConcat_WhereProjection>> Concat<TConcat_WhereInnerItem, TConcat_WhereInnerEnumerable, TConcat_WhereInnerEnumerator, TConcat_WherePredicate, TConcat_WhereProjection>(WhereSelectEnumerable<TItem, TConcat_WhereInnerItem, TConcat_WhereInnerEnumerable, TConcat_WhereInnerEnumerator, TConcat_WherePredicate, TConcat_WhereProjection> second)
where TConcat_WhereInnerEnumerable : struct, IStructEnumerable<TConcat_WhereInnerItem, TConcat_WhereInnerEnumerator>
where TConcat_WhereInnerEnumerator : struct, IStructEnumerator<TConcat_WhereInnerItem>
where TConcat_WherePredicate : struct, IStructPredicate<TConcat_WhereInnerItem>
where TConcat_WhereProjection : struct, IStructProjection<TItem, TConcat_WhereInnerItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, DistinctDefaultEnumerable<TItem, TConcat_DistinctInnerEnumerable, TConcat_DistinctInnerEnumerator>, DistinctDefaultEnumerator<TItem, TConcat_DistinctInnerEnumerator>> Concat<TConcat_DistinctInnerEnumerable, TConcat_DistinctInnerEnumerator>(DistinctDefaultEnumerable<TItem, TConcat_DistinctInnerEnumerable, TConcat_DistinctInnerEnumerator> second)
where TConcat_DistinctInnerEnumerable : struct, IStructEnumerable<TItem, TConcat_DistinctInnerEnumerator>
where TConcat_DistinctInnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, DistinctSpecificEnumerable<TItem, TConcat_DistinctInnerEnumerable, TConcat_DistinctInnerEnumerator>, DistinctSpecificEnumerator<TItem, TConcat_DistinctInnerEnumerator>> Concat<TConcat_DistinctInnerEnumerable, TConcat_DistinctInnerEnumerator>(DistinctSpecificEnumerable<TItem, TConcat_DistinctInnerEnumerable, TConcat_DistinctInnerEnumerator> second)
where TConcat_DistinctInnerEnumerable : struct, IStructEnumerable<TItem, TConcat_DistinctInnerEnumerator>
where TConcat_DistinctInnerEnumerator : struct, IStructEnumerator<TItem>;
TLeftEnumerable Concat(EmptyOrderedEnumerable<TItem> second);
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, ExceptDefaultEnumerable<TItem, TExceptFirstEnumerable, TExceptFirstEnumerator, TExceptSecondEnumerable, TExceptSecondEnumerator>, ExceptDefaultEnumerator<TItem, TExceptFirstEnumerator, TExceptSecondEnumerator>> Concat<TExceptFirstEnumerable, TExceptFirstEnumerator, TExceptSecondEnumerable, TExceptSecondEnumerator>(ExceptDefaultEnumerable<TItem, TExceptFirstEnumerable, TExceptFirstEnumerator, TExceptSecondEnumerable, TExceptSecondEnumerator> second)
where TExceptFirstEnumerable : struct, IStructEnumerable<TItem, TExceptFirstEnumerator>
where TExceptFirstEnumerator : struct, IStructEnumerator<TItem>
where TExceptSecondEnumerable : struct, IStructEnumerable<TItem, TExceptSecondEnumerator>
where TExceptSecondEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, ExceptSpecificEnumerable<TItem, TExceptFirstEnumerable, TExceptFirstEnumerator, TExceptSecondEnumerable, TExceptSecondEnumerator>, ExceptSpecificEnumerator<TItem, TExceptFirstEnumerator, TExceptSecondEnumerator>> Concat<TExceptFirstEnumerable, TExceptFirstEnumerator, TExceptSecondEnumerable, TExceptSecondEnumerator>(ExceptSpecificEnumerable<TItem, TExceptFirstEnumerable, TExceptFirstEnumerator, TExceptSecondEnumerable, TExceptSecondEnumerator> second)
where TExceptFirstEnumerable : struct, IStructEnumerable<TItem, TExceptFirstEnumerator>
where TExceptFirstEnumerator : struct, IStructEnumerator<TItem>
where TExceptSecondEnumerable : struct, IStructEnumerable<TItem, TExceptSecondEnumerator>
where TExceptSecondEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, IntersectDefaultEnumerable<TItem, TIntersectFirstEnumerable, TIntersectFirstEnumerator, TIntersectSecondEnumerable, TIntersectSecondEnumerator>, IntersectDefaultEnumerator<TItem, TIntersectFirstEnumerator, TIntersectSecondEnumerator>> Concat<TIntersectFirstEnumerable, TIntersectFirstEnumerator, TIntersectSecondEnumerable, TIntersectSecondEnumerator>(IntersectDefaultEnumerable<TItem, TIntersectFirstEnumerable, TIntersectFirstEnumerator, TIntersectSecondEnumerable, TIntersectSecondEnumerator> second)
where TIntersectFirstEnumerable : struct, IStructEnumerable<TItem, TIntersectFirstEnumerator>
where TIntersectFirstEnumerator : struct, IStructEnumerator<TItem>
where TIntersectSecondEnumerable : struct, IStructEnumerable<TItem, TIntersectSecondEnumerator>
where TIntersectSecondEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, IntersectSpecificEnumerable<TItem, TIntersectFirstEnumerable, TIntersectFirstEnumerator, TIntersectSecondEnumerable, TIntersectSecondEnumerator>, IntersectSpecificEnumerator<TItem, TIntersectFirstEnumerator, TIntersectSecondEnumerator>> Concat<TIntersectFirstEnumerable, TIntersectFirstEnumerator, TIntersectSecondEnumerable, TIntersectSecondEnumerator>(IntersectSpecificEnumerable<TItem, TIntersectFirstEnumerable, TIntersectFirstEnumerator, TIntersectSecondEnumerable, TIntersectSecondEnumerator> second)
where TIntersectFirstEnumerable : struct, IStructEnumerable<TItem, TIntersectFirstEnumerator>
where TIntersectFirstEnumerator : struct, IStructEnumerator<TItem>
where TIntersectSecondEnumerable : struct, IStructEnumerable<TItem, TIntersectSecondEnumerator>
where TIntersectSecondEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, UnionDefaultEnumerable<TItem, TUnionFirstEnumerable, TUnionFirstEnumerator, TUnionSecondEnumerable, TUnionSecondEnumerator>, UnionDefaultEnumerator<TItem, TUnionFirstEnumerator, TUnionSecondEnumerator>> Concat<TUnionFirstEnumerable, TUnionFirstEnumerator, TUnionSecondEnumerable, TUnionSecondEnumerator>(UnionDefaultEnumerable<TItem, TUnionFirstEnumerable, TUnionFirstEnumerator, TUnionSecondEnumerable, TUnionSecondEnumerator> second)
where TUnionFirstEnumerable : struct, IStructEnumerable<TItem, TUnionFirstEnumerator>
where TUnionFirstEnumerator : struct, IStructEnumerator<TItem>
where TUnionSecondEnumerable : struct, IStructEnumerable<TItem, TUnionSecondEnumerator>
where TUnionSecondEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, UnionSpecificEnumerable<TItem, TUnionFirstEnumerable, TUnionFirstEnumerator, TUnionSecondEnumerable, TUnionSecondEnumerator>, UnionSpecificEnumerator<TItem, TUnionFirstEnumerator, TUnionSecondEnumerator>> Concat<TUnionFirstEnumerable, TUnionFirstEnumerator, TUnionSecondEnumerable, TUnionSecondEnumerator>(UnionSpecificEnumerable<TItem, TUnionFirstEnumerable, TUnionFirstEnumerator, TUnionSecondEnumerable, TUnionSecondEnumerator> second)
where TUnionFirstEnumerable : struct, IStructEnumerable<TItem, TUnionFirstEnumerator>
where TUnionFirstEnumerator : struct, IStructEnumerator<TItem>
where TUnionSecondEnumerable : struct, IStructEnumerable<TItem, TUnionSecondEnumerator>
where TUnionSecondEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, GroupedEnumerable<TGroupedKey, TItem>, GroupedEnumerator<TItem>> Concat<TGroupedKey>(GroupedEnumerable<TGroupedKey, TItem> second);
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, GroupingEnumerable<TGroupedKey, TItem>, GroupingEnumerator<TItem>> Concat<TGroupedKey>(GroupingEnumerable<TGroupedKey, TItem> second);
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, ReverseEnumerable<TItem, TReverseEnumerable, TReverseEnumerator>, ReverseEnumerator<TItem>> Concat<TReverseEnumerable, TReverseEnumerator>(ReverseEnumerable<TItem, TReverseEnumerable, TReverseEnumerator> second)
where TReverseEnumerable : struct, IStructEnumerable<TItem, TReverseEnumerator>
where TReverseEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<TItem, TLeftEnumerable, TLeftEnumerator, OrderByEnumerable<TItem, TOrderByKey, TOrderByEnumerable, TOrderByEnumerator, TOrderByComparer>, OrderByEnumerator<TItem, TOrderByKey, TOrderByEnumerator, TOrderByComparer>> Concat<TOrderByKey, TOrderByEnumerable, TOrderByEnumerator, TOrderByComparer>(OrderByEnumerable<TItem, TOrderByKey, TOrderByEnumerable, TOrderByEnumerator, TOrderByComparer> second)
where TOrderByEnumerable : struct, IStructEnumerable<TItem, TOrderByEnumerator>
where TOrderByEnumerator : struct, IStructEnumerator<TItem>
where TOrderByComparer : struct, IStructComparer<TItem, TOrderByKey>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
GroupJoinDefaultEnumerable<TItem, TGroupJoinKeyItem, TGroupJoinLeftItem, TGroupJoinLeftEnumerable, TGroupJoinLeftEnumerator, TGroupJoinRightItem, TGroupJoinRightEnumerable, TGroupJoinRightEnumerator>,
GroupJoinDefaultEnumerator<TItem, TGroupJoinKeyItem, TGroupJoinLeftItem, TGroupJoinLeftEnumerator, TGroupJoinRightItem, TGroupJoinRightEnumerator>
> Concat<TGroupJoinKeyItem, TGroupJoinLeftItem, TGroupJoinLeftEnumerable, TGroupJoinLeftEnumerator, TGroupJoinRightItem, TGroupJoinRightEnumerable, TGroupJoinRightEnumerator>(
GroupJoinDefaultEnumerable<TItem, TGroupJoinKeyItem, TGroupJoinLeftItem, TGroupJoinLeftEnumerable, TGroupJoinLeftEnumerator, TGroupJoinRightItem, TGroupJoinRightEnumerable, TGroupJoinRightEnumerator> second
)
where TGroupJoinLeftEnumerable : struct, IStructEnumerable<TGroupJoinLeftItem, TGroupJoinLeftEnumerator>
where TGroupJoinLeftEnumerator : struct, IStructEnumerator<TGroupJoinLeftItem>
where TGroupJoinRightEnumerable : struct, IStructEnumerable<TGroupJoinRightItem, TGroupJoinRightEnumerator>
where TGroupJoinRightEnumerator : struct, IStructEnumerator<TGroupJoinRightItem>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
GroupJoinSpecificEnumerable<TItem, TGroupJoinKeyItem, TGroupJoinLeftItem, TGroupJoinLeftEnumerable, TGroupJoinLeftEnumerator, TGroupJoinRightItem, TGroupJoinRightEnumerable, TGroupJoinRightEnumerator>,
GroupJoinSpecificEnumerator<TItem, TGroupJoinKeyItem, TGroupJoinLeftItem, TGroupJoinLeftEnumerator, TGroupJoinRightItem, TGroupJoinRightEnumerator>
> Concat<TGroupJoinKeyItem, TGroupJoinLeftItem, TGroupJoinLeftEnumerable, TGroupJoinLeftEnumerator, TGroupJoinRightItem, TGroupJoinRightEnumerable, TGroupJoinRightEnumerator>(
GroupJoinSpecificEnumerable<TItem, TGroupJoinKeyItem, TGroupJoinLeftItem, TGroupJoinLeftEnumerable, TGroupJoinLeftEnumerator, TGroupJoinRightItem, TGroupJoinRightEnumerable, TGroupJoinRightEnumerator> second
)
where TGroupJoinLeftEnumerable : struct, IStructEnumerable<TGroupJoinLeftItem, TGroupJoinLeftEnumerator>
where TGroupJoinLeftEnumerator : struct, IStructEnumerator<TGroupJoinLeftItem>
where TGroupJoinRightEnumerable : struct, IStructEnumerable<TGroupJoinRightItem, TGroupJoinRightEnumerator>
where TGroupJoinRightEnumerator : struct, IStructEnumerator<TGroupJoinRightItem>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
GroupByCollectionDefaultEnumerable<TGroupByInItem, TGroupByKey, TGroupByElement, TItem, TGroupByEnumerable, TGroupByEnumerator>,
GroupByCollectionDefaultEnumerator<TGroupByInItem, TGroupByKey, TGroupByElement, TItem, TGroupByEnumerator>
> Concat<TGroupByInItem, TGroupByKey, TGroupByElement, TGroupByEnumerable, TGroupByEnumerator>(
GroupByCollectionDefaultEnumerable<TGroupByInItem, TGroupByKey, TGroupByElement, TItem, TGroupByEnumerable, TGroupByEnumerator> second
)
where TGroupByEnumerable : struct, IStructEnumerable<TGroupByInItem, TGroupByEnumerator>
where TGroupByEnumerator : struct, IStructEnumerator<TGroupByInItem>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
GroupByCollectionSpecificEnumerable<TGroupByInItem, TGroupByKey, TGroupByElement, TItem, TGroupByEnumerable, TGroupByEnumerator>,
GroupByCollectionSpecificEnumerator<TGroupByInItem, TGroupByKey, TGroupByElement, TItem, TGroupByEnumerator>
> Concat<TGroupByInItem, TGroupByKey, TGroupByElement, TGroupByEnumerable, TGroupByEnumerator>(
GroupByCollectionSpecificEnumerable<TGroupByInItem, TGroupByKey, TGroupByElement, TItem, TGroupByEnumerable, TGroupByEnumerator> second
)
where TGroupByEnumerable : struct, IStructEnumerable<TGroupByInItem, TGroupByEnumerator>
where TGroupByEnumerator : struct, IStructEnumerator<TGroupByInItem>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
JoinDefaultEnumerable<TItem, TJoinKeyItem, TJoinLeftItem, TJoinLeftEnumerable, TJoinLeftEnumerator, TJoinRightItem, TJoinRightEnumerable, TJoinRightEnumerator>,
JoinDefaultEnumerator<TItem, TJoinKeyItem, TJoinLeftItem, TJoinLeftEnumerator, TJoinRightItem, TJoinRightEnumerator>
> Concat<TJoinKeyItem, TJoinLeftItem, TJoinLeftEnumerable, TJoinLeftEnumerator, TJoinRightItem, TJoinRightEnumerable, TJoinRightEnumerator>(
JoinDefaultEnumerable<TItem, TJoinKeyItem, TJoinLeftItem, TJoinLeftEnumerable, TJoinLeftEnumerator, TJoinRightItem, TJoinRightEnumerable, TJoinRightEnumerator> second
)
where TJoinLeftEnumerable : struct, IStructEnumerable<TJoinLeftItem, TJoinLeftEnumerator>
where TJoinLeftEnumerator : struct, IStructEnumerator<TJoinLeftItem>
where TJoinRightEnumerable : struct, IStructEnumerable<TJoinRightItem, TJoinRightEnumerator>
where TJoinRightEnumerator : struct, IStructEnumerator<TJoinRightItem>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
JoinSpecificEnumerable<TItem, TJoinKeyItem, TJoinLeftItem, TJoinLeftEnumerable, TJoinLeftEnumerator, TJoinRightItem, TJoinRightEnumerable, TJoinRightEnumerator>,
JoinSpecificEnumerator<TItem, TJoinKeyItem, TJoinLeftItem, TJoinLeftEnumerator, TJoinRightItem, TJoinRightEnumerator>
> Concat<TJoinKeyItem, TJoinLeftItem, TJoinLeftEnumerable, TJoinLeftEnumerator, TJoinRightItem, TJoinRightEnumerable, TJoinRightEnumerator>(
JoinSpecificEnumerable<TItem, TJoinKeyItem, TJoinLeftItem, TJoinLeftEnumerable, TJoinLeftEnumerator, TJoinRightItem, TJoinRightEnumerable, TJoinRightEnumerator> second
)
where TJoinLeftEnumerable : struct, IStructEnumerable<TJoinLeftItem, TJoinLeftEnumerator>
where TJoinLeftEnumerator : struct, IStructEnumerator<TJoinLeftItem>
where TJoinRightEnumerable : struct, IStructEnumerable<TJoinRightItem, TJoinRightEnumerator>
where TJoinRightEnumerator : struct, IStructEnumerator<TJoinRightItem>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
OneItemDefaultEnumerable<TItem>,
OneItemDefaultEnumerator<TItem>
> Concat(OneItemDefaultEnumerable<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
OneItemSpecificEnumerable<TItem>,
OneItemSpecificEnumerator<TItem>
> Concat(OneItemSpecificEnumerable<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
OneItemDefaultOrderedEnumerable<TItem>,
OneItemDefaultOrderedEnumerator<TItem>
> Concat(OneItemDefaultOrderedEnumerable<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
OneItemSpecificOrderedEnumerable<TItem>,
OneItemSpecificOrderedEnumerator<TItem>
> Concat(OneItemSpecificOrderedEnumerable<TItem> second);
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
SkipLastEnumerable<TItem, TSkipLastInnerEnumerable, TSkipLastInnerEnumerator>,
SkipLastEnumerator<TItem, TSkipLastInnerEnumerator>
> Concat<TSkipLastInnerEnumerable, TSkipLastInnerEnumerator>(SkipLastEnumerable<TItem, TSkipLastInnerEnumerable, TSkipLastInnerEnumerator> second)
where TSkipLastInnerEnumerable : struct, IStructEnumerable<TItem, TSkipLastInnerEnumerator>
where TSkipLastInnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
TakeLastEnumerable<TItem, TTakeLastInnerEnumerable, TTakeLastInnerEnumerator>,
TakeLastEnumerator<TItem, TTakeLastInnerEnumerator>
> Concat<TTakeLastInnerEnumerable, TTakeLastInnerEnumerator>(TakeLastEnumerable<TItem, TTakeLastInnerEnumerable, TTakeLastInnerEnumerator> second)
where TTakeLastInnerEnumerable : struct, IStructEnumerable<TItem, TTakeLastInnerEnumerator>
where TTakeLastInnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
AppendEnumerable<TItem, TAppendInnerEnumerable, TAppendInnerEnumerator>,
AppendEnumerator<TItem, TAppendInnerEnumerator>
> Concat<TAppendInnerEnumerable, TAppendInnerEnumerator>(AppendEnumerable<TItem, TAppendInnerEnumerable, TAppendInnerEnumerator> second)
where TAppendInnerEnumerable : struct, IStructEnumerable<TItem, TAppendInnerEnumerator>
where TAppendInnerEnumerator : struct, IStructEnumerator<TItem>;
ConcatEnumerable<
TItem,
TLeftEnumerable,
TLeftEnumerator,
PrependEnumerable<TItem, TPrependInnerEnumerable, TPrependInnerEnumerator>,
PrependEnumerator<TItem, TPrependInnerEnumerator>
> Concat<TPrependInnerEnumerable, TPrependInnerEnumerator>(PrependEnumerable<TItem, TPrependInnerEnumerable, TPrependInnerEnumerator> second)
where TPrependInnerEnumerable : struct, IStructEnumerable<TItem, TPrependInnerEnumerator>
where TPrependInnerEnumerator : struct, IStructEnumerator<TItem>;
}
}