// #if FAT using System; using System.Collections.Generic; namespace LinqInternal.Collections { internal static partial class Extensions { #if NET35 public static IEnumerable Zip(this IEnumerable first, IEnumerable second, Func resultSelector) #else public static IEnumerable Zip(IEnumerable first, IEnumerable second, Func resultSelector) #endif { if (first == null) { throw new ArgumentNullException("first"); } if (second == null) { throw new ArgumentNullException("second"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = first.GetEnumerator()) using (var enumerator2 = second.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, IEnumerable arg8, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (arg8 == null) { throw new ArgumentNullException("arg8"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) using (var enumerator8 = arg8.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() && enumerator8.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current, enumerator8.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, IEnumerable arg8, IEnumerable arg9, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (arg8 == null) { throw new ArgumentNullException("arg8"); } if (arg9 == null) { throw new ArgumentNullException("arg9"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) using (var enumerator8 = arg8.GetEnumerator()) using (var enumerator9 = arg9.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() && enumerator8.MoveNext() && enumerator9.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current, enumerator8.Current, enumerator9.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, IEnumerable arg8, IEnumerable arg9, IEnumerable arg10, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (arg8 == null) { throw new ArgumentNullException("arg8"); } if (arg9 == null) { throw new ArgumentNullException("arg9"); } if (arg10 == null) { throw new ArgumentNullException("arg10"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) using (var enumerator8 = arg8.GetEnumerator()) using (var enumerator9 = arg9.GetEnumerator()) using (var enumerator10 = arg10.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() && enumerator8.MoveNext() && enumerator9.MoveNext() && enumerator10.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current, enumerator8.Current, enumerator9.Current, enumerator10.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, IEnumerable arg8, IEnumerable arg9, IEnumerable arg10, IEnumerable arg11, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (arg8 == null) { throw new ArgumentNullException("arg8"); } if (arg9 == null) { throw new ArgumentNullException("arg9"); } if (arg10 == null) { throw new ArgumentNullException("arg10"); } if (arg11 == null) { throw new ArgumentNullException("arg11"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) using (var enumerator8 = arg8.GetEnumerator()) using (var enumerator9 = arg9.GetEnumerator()) using (var enumerator10 = arg10.GetEnumerator()) using (var enumerator11 = arg11.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() && enumerator8.MoveNext() && enumerator9.MoveNext() && enumerator10.MoveNext() && enumerator11.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current, enumerator8.Current, enumerator9.Current, enumerator10.Current, enumerator11.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, IEnumerable arg8, IEnumerable arg9, IEnumerable arg10, IEnumerable arg11, IEnumerable arg12, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (arg8 == null) { throw new ArgumentNullException("arg8"); } if (arg9 == null) { throw new ArgumentNullException("arg9"); } if (arg10 == null) { throw new ArgumentNullException("arg10"); } if (arg11 == null) { throw new ArgumentNullException("arg11"); } if (arg12 == null) { throw new ArgumentNullException("arg12"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) using (var enumerator8 = arg8.GetEnumerator()) using (var enumerator9 = arg9.GetEnumerator()) using (var enumerator10 = arg10.GetEnumerator()) using (var enumerator11 = arg11.GetEnumerator()) using (var enumerator12 = arg12.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() && enumerator8.MoveNext() && enumerator9.MoveNext() && enumerator10.MoveNext() && enumerator11.MoveNext() && enumerator12.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current, enumerator8.Current, enumerator9.Current, enumerator10.Current, enumerator11.Current, enumerator12.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, IEnumerable arg8, IEnumerable arg9, IEnumerable arg10, IEnumerable arg11, IEnumerable arg12, IEnumerable arg13, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (arg8 == null) { throw new ArgumentNullException("arg8"); } if (arg9 == null) { throw new ArgumentNullException("arg9"); } if (arg10 == null) { throw new ArgumentNullException("arg10"); } if (arg11 == null) { throw new ArgumentNullException("arg11"); } if (arg12 == null) { throw new ArgumentNullException("arg12"); } if (arg13 == null) { throw new ArgumentNullException("arg13"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) using (var enumerator8 = arg8.GetEnumerator()) using (var enumerator9 = arg9.GetEnumerator()) using (var enumerator10 = arg10.GetEnumerator()) using (var enumerator11 = arg11.GetEnumerator()) using (var enumerator12 = arg12.GetEnumerator()) using (var enumerator13 = arg13.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() && enumerator8.MoveNext() && enumerator9.MoveNext() && enumerator10.MoveNext() && enumerator11.MoveNext() && enumerator12.MoveNext() && enumerator13.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current, enumerator8.Current, enumerator9.Current, enumerator10.Current, enumerator11.Current, enumerator12.Current, enumerator13.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, IEnumerable arg8, IEnumerable arg9, IEnumerable arg10, IEnumerable arg11, IEnumerable arg12, IEnumerable arg13, IEnumerable arg14, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (arg8 == null) { throw new ArgumentNullException("arg8"); } if (arg9 == null) { throw new ArgumentNullException("arg9"); } if (arg10 == null) { throw new ArgumentNullException("arg10"); } if (arg11 == null) { throw new ArgumentNullException("arg11"); } if (arg12 == null) { throw new ArgumentNullException("arg12"); } if (arg13 == null) { throw new ArgumentNullException("arg13"); } if (arg14 == null) { throw new ArgumentNullException("arg14"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) using (var enumerator8 = arg8.GetEnumerator()) using (var enumerator9 = arg9.GetEnumerator()) using (var enumerator10 = arg10.GetEnumerator()) using (var enumerator11 = arg11.GetEnumerator()) using (var enumerator12 = arg12.GetEnumerator()) using (var enumerator13 = arg13.GetEnumerator()) using (var enumerator14 = arg14.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() && enumerator8.MoveNext() && enumerator9.MoveNext() && enumerator10.MoveNext() && enumerator11.MoveNext() && enumerator12.MoveNext() && enumerator13.MoveNext() && enumerator14.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current, enumerator8.Current, enumerator9.Current, enumerator10.Current, enumerator11.Current, enumerator12.Current, enumerator13.Current, enumerator14.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, IEnumerable arg8, IEnumerable arg9, IEnumerable arg10, IEnumerable arg11, IEnumerable arg12, IEnumerable arg13, IEnumerable arg14, IEnumerable arg15, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (arg8 == null) { throw new ArgumentNullException("arg8"); } if (arg9 == null) { throw new ArgumentNullException("arg9"); } if (arg10 == null) { throw new ArgumentNullException("arg10"); } if (arg11 == null) { throw new ArgumentNullException("arg11"); } if (arg12 == null) { throw new ArgumentNullException("arg12"); } if (arg13 == null) { throw new ArgumentNullException("arg13"); } if (arg14 == null) { throw new ArgumentNullException("arg14"); } if (arg15 == null) { throw new ArgumentNullException("arg15"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) using (var enumerator8 = arg8.GetEnumerator()) using (var enumerator9 = arg9.GetEnumerator()) using (var enumerator10 = arg10.GetEnumerator()) using (var enumerator11 = arg11.GetEnumerator()) using (var enumerator12 = arg12.GetEnumerator()) using (var enumerator13 = arg13.GetEnumerator()) using (var enumerator14 = arg14.GetEnumerator()) using (var enumerator15 = arg15.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() && enumerator8.MoveNext() && enumerator9.MoveNext() && enumerator10.MoveNext() && enumerator11.MoveNext() && enumerator12.MoveNext() && enumerator13.MoveNext() && enumerator14.MoveNext() && enumerator15.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current, enumerator8.Current, enumerator9.Current, enumerator10.Current, enumerator11.Current, enumerator12.Current, enumerator13.Current, enumerator14.Current, enumerator15.Current ); } } } public static IEnumerable Zip(IEnumerable arg1, IEnumerable arg2, IEnumerable arg3, IEnumerable arg4, IEnumerable arg5, IEnumerable arg6, IEnumerable arg7, IEnumerable arg8, IEnumerable arg9, IEnumerable arg10, IEnumerable arg11, IEnumerable arg12, IEnumerable arg13, IEnumerable arg14, IEnumerable arg15, IEnumerable arg16, Func resultSelector) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (arg2 == null) { throw new ArgumentNullException("arg2"); } if (arg3 == null) { throw new ArgumentNullException("arg3"); } if (arg4 == null) { throw new ArgumentNullException("arg4"); } if (arg5 == null) { throw new ArgumentNullException("arg5"); } if (arg6 == null) { throw new ArgumentNullException("arg6"); } if (arg7 == null) { throw new ArgumentNullException("arg7"); } if (arg8 == null) { throw new ArgumentNullException("arg8"); } if (arg9 == null) { throw new ArgumentNullException("arg9"); } if (arg10 == null) { throw new ArgumentNullException("arg10"); } if (arg11 == null) { throw new ArgumentNullException("arg11"); } if (arg12 == null) { throw new ArgumentNullException("arg12"); } if (arg13 == null) { throw new ArgumentNullException("arg13"); } if (arg14 == null) { throw new ArgumentNullException("arg14"); } if (arg15 == null) { throw new ArgumentNullException("arg15"); } if (arg16 == null) { throw new ArgumentNullException("arg16"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } using (var enumerator1 = arg1.GetEnumerator()) using (var enumerator2 = arg2.GetEnumerator()) using (var enumerator3 = arg3.GetEnumerator()) using (var enumerator4 = arg4.GetEnumerator()) using (var enumerator5 = arg5.GetEnumerator()) using (var enumerator6 = arg6.GetEnumerator()) using (var enumerator7 = arg7.GetEnumerator()) using (var enumerator8 = arg8.GetEnumerator()) using (var enumerator9 = arg9.GetEnumerator()) using (var enumerator10 = arg10.GetEnumerator()) using (var enumerator11 = arg11.GetEnumerator()) using (var enumerator12 = arg12.GetEnumerator()) using (var enumerator13 = arg13.GetEnumerator()) using (var enumerator14 = arg14.GetEnumerator()) using (var enumerator15 = arg15.GetEnumerator()) using (var enumerator16 = arg16.GetEnumerator()) { while ( enumerator1.MoveNext() && enumerator2.MoveNext() && enumerator3.MoveNext() && enumerator4.MoveNext() && enumerator5.MoveNext() && enumerator6.MoveNext() && enumerator7.MoveNext() && enumerator8.MoveNext() && enumerator9.MoveNext() && enumerator10.MoveNext() && enumerator11.MoveNext() && enumerator12.MoveNext() && enumerator13.MoveNext() && enumerator14.MoveNext() && enumerator15.MoveNext() && enumerator16.MoveNext() ) { yield return resultSelector ( enumerator1.Current, enumerator2.Current, enumerator3.Current, enumerator4.Current, enumerator5.Current, enumerator6.Current, enumerator7.Current, enumerator8.Current, enumerator9.Current, enumerator10.Current, enumerator11.Current, enumerator12.Current, enumerator13.Current, enumerator14.Current, enumerator15.Current, enumerator16.Current ); } } } } } #endif