//-------------------------------------------------------------------------------------------------------------- public static void AddRange <TEnumerator, TSource> ( this IList <TSource> list, EnumerableAdapter <TEnumerator, TSource> enumerable ) where TEnumerator : IAdaptableEnumerator <TSource> { foreach (var element in enumerable) { list.Add(item: element); } }
//-------------------------------------------------------------------------------------------------------------- public static void PushRange <TEnumerator, TSource> ( this Stack <TSource> stack, EnumerableAdapter <TEnumerator, TSource> enumerable ) where TEnumerator : IAdaptableEnumerator <TSource> { foreach (var element in enumerable) { stack.Push(item: element); } }
//-------------------------------------------------------------------------------------------------------------- public static void EnqueueRange <TEnumerator, TSource> ( this Queue <TSource> queue, EnumerableAdapter <TEnumerator, TSource> enumerable ) where TEnumerator : IAdaptableEnumerator <TSource> { foreach (var element in enumerable) { queue.Enqueue(item: element); } }
//-------------------------------------------------------------------------------------------------------------- public static void Add <TEnumerator, TSource> ( this IList <TSource> list, EnumerableAdapter <TEnumerator, TSource> enumerable ) where TEnumerator : IAdaptableEnumerator <TSource> => list.AddRange(enumerable : enumerable);