Observable.Multiple.Zip.Generated.cs 67 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the MIT License.
  3. // See the LICENSE file in the project root for more information.
  4. namespace System.Reactive.Linq
  5. {
  6. public static partial class Observable
  7. {
  8. /* The following code is generated by a T4 template. */
  9. #region Zip auto-generated code (09/25/2020 12:10:41)
  10. /// <summary>
  11. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  12. /// </summary>
  13. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  14. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  15. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  16. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  17. /// <param name="source1">First observable source.</param>
  18. /// <param name="source2">Second observable source.</param>
  19. /// <param name="source3">Third observable source.</param>
  20. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  21. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  22. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="resultSelector"/> is null.</exception>
  23. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, Func<TSource1, TSource2, TSource3, TResult> resultSelector)
  24. {
  25. if (source1 == null)
  26. {
  27. throw new ArgumentNullException(nameof(source1));
  28. }
  29. if (source2 == null)
  30. {
  31. throw new ArgumentNullException(nameof(source2));
  32. }
  33. if (source3 == null)
  34. {
  35. throw new ArgumentNullException(nameof(source3));
  36. }
  37. if (resultSelector == null)
  38. {
  39. throw new ArgumentNullException(nameof(resultSelector));
  40. }
  41. return s_impl.Zip(source1, source2, source3, resultSelector);
  42. }
  43. /// <summary>
  44. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  45. /// </summary>
  46. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  47. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  48. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  49. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  50. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  51. /// <param name="source1">First observable source.</param>
  52. /// <param name="source2">Second observable source.</param>
  53. /// <param name="source3">Third observable source.</param>
  54. /// <param name="source4">Fourth observable source.</param>
  55. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  56. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  57. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="resultSelector"/> is null.</exception>
  58. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, Func<TSource1, TSource2, TSource3, TSource4, TResult> resultSelector)
  59. {
  60. if (source1 == null)
  61. {
  62. throw new ArgumentNullException(nameof(source1));
  63. }
  64. if (source2 == null)
  65. {
  66. throw new ArgumentNullException(nameof(source2));
  67. }
  68. if (source3 == null)
  69. {
  70. throw new ArgumentNullException(nameof(source3));
  71. }
  72. if (source4 == null)
  73. {
  74. throw new ArgumentNullException(nameof(source4));
  75. }
  76. if (resultSelector == null)
  77. {
  78. throw new ArgumentNullException(nameof(resultSelector));
  79. }
  80. return s_impl.Zip(source1, source2, source3, source4, resultSelector);
  81. }
  82. /// <summary>
  83. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  84. /// </summary>
  85. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  86. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  87. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  88. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  89. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  90. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  91. /// <param name="source1">First observable source.</param>
  92. /// <param name="source2">Second observable source.</param>
  93. /// <param name="source3">Third observable source.</param>
  94. /// <param name="source4">Fourth observable source.</param>
  95. /// <param name="source5">Fifth observable source.</param>
  96. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  97. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  98. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="resultSelector"/> is null.</exception>
  99. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TResult> resultSelector)
  100. {
  101. if (source1 == null)
  102. {
  103. throw new ArgumentNullException(nameof(source1));
  104. }
  105. if (source2 == null)
  106. {
  107. throw new ArgumentNullException(nameof(source2));
  108. }
  109. if (source3 == null)
  110. {
  111. throw new ArgumentNullException(nameof(source3));
  112. }
  113. if (source4 == null)
  114. {
  115. throw new ArgumentNullException(nameof(source4));
  116. }
  117. if (source5 == null)
  118. {
  119. throw new ArgumentNullException(nameof(source5));
  120. }
  121. if (resultSelector == null)
  122. {
  123. throw new ArgumentNullException(nameof(resultSelector));
  124. }
  125. return s_impl.Zip(source1, source2, source3, source4, source5, resultSelector);
  126. }
  127. /// <summary>
  128. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  129. /// </summary>
  130. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  131. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  132. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  133. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  134. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  135. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  136. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  137. /// <param name="source1">First observable source.</param>
  138. /// <param name="source2">Second observable source.</param>
  139. /// <param name="source3">Third observable source.</param>
  140. /// <param name="source4">Fourth observable source.</param>
  141. /// <param name="source5">Fifth observable source.</param>
  142. /// <param name="source6">Sixth observable source.</param>
  143. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  144. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  145. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="resultSelector"/> is null.</exception>
  146. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult> resultSelector)
  147. {
  148. if (source1 == null)
  149. {
  150. throw new ArgumentNullException(nameof(source1));
  151. }
  152. if (source2 == null)
  153. {
  154. throw new ArgumentNullException(nameof(source2));
  155. }
  156. if (source3 == null)
  157. {
  158. throw new ArgumentNullException(nameof(source3));
  159. }
  160. if (source4 == null)
  161. {
  162. throw new ArgumentNullException(nameof(source4));
  163. }
  164. if (source5 == null)
  165. {
  166. throw new ArgumentNullException(nameof(source5));
  167. }
  168. if (source6 == null)
  169. {
  170. throw new ArgumentNullException(nameof(source6));
  171. }
  172. if (resultSelector == null)
  173. {
  174. throw new ArgumentNullException(nameof(resultSelector));
  175. }
  176. return s_impl.Zip(source1, source2, source3, source4, source5, source6, resultSelector);
  177. }
  178. /// <summary>
  179. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  180. /// </summary>
  181. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  182. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  183. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  184. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  185. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  186. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  187. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  188. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  189. /// <param name="source1">First observable source.</param>
  190. /// <param name="source2">Second observable source.</param>
  191. /// <param name="source3">Third observable source.</param>
  192. /// <param name="source4">Fourth observable source.</param>
  193. /// <param name="source5">Fifth observable source.</param>
  194. /// <param name="source6">Sixth observable source.</param>
  195. /// <param name="source7">Seventh observable source.</param>
  196. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  197. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  198. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="resultSelector"/> is null.</exception>
  199. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult> resultSelector)
  200. {
  201. if (source1 == null)
  202. {
  203. throw new ArgumentNullException(nameof(source1));
  204. }
  205. if (source2 == null)
  206. {
  207. throw new ArgumentNullException(nameof(source2));
  208. }
  209. if (source3 == null)
  210. {
  211. throw new ArgumentNullException(nameof(source3));
  212. }
  213. if (source4 == null)
  214. {
  215. throw new ArgumentNullException(nameof(source4));
  216. }
  217. if (source5 == null)
  218. {
  219. throw new ArgumentNullException(nameof(source5));
  220. }
  221. if (source6 == null)
  222. {
  223. throw new ArgumentNullException(nameof(source6));
  224. }
  225. if (source7 == null)
  226. {
  227. throw new ArgumentNullException(nameof(source7));
  228. }
  229. if (resultSelector == null)
  230. {
  231. throw new ArgumentNullException(nameof(resultSelector));
  232. }
  233. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, resultSelector);
  234. }
  235. /// <summary>
  236. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  237. /// </summary>
  238. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  239. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  240. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  241. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  242. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  243. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  244. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  245. /// <typeparam name="TSource8">The type of the elements in the eighth source sequence.</typeparam>
  246. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  247. /// <param name="source1">First observable source.</param>
  248. /// <param name="source2">Second observable source.</param>
  249. /// <param name="source3">Third observable source.</param>
  250. /// <param name="source4">Fourth observable source.</param>
  251. /// <param name="source5">Fifth observable source.</param>
  252. /// <param name="source6">Sixth observable source.</param>
  253. /// <param name="source7">Seventh observable source.</param>
  254. /// <param name="source8">Eighth observable source.</param>
  255. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  256. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  257. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="source8"/> or <paramref name="resultSelector"/> is null.</exception>
  258. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, IObservable<TSource8> source8, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult> resultSelector)
  259. {
  260. if (source1 == null)
  261. {
  262. throw new ArgumentNullException(nameof(source1));
  263. }
  264. if (source2 == null)
  265. {
  266. throw new ArgumentNullException(nameof(source2));
  267. }
  268. if (source3 == null)
  269. {
  270. throw new ArgumentNullException(nameof(source3));
  271. }
  272. if (source4 == null)
  273. {
  274. throw new ArgumentNullException(nameof(source4));
  275. }
  276. if (source5 == null)
  277. {
  278. throw new ArgumentNullException(nameof(source5));
  279. }
  280. if (source6 == null)
  281. {
  282. throw new ArgumentNullException(nameof(source6));
  283. }
  284. if (source7 == null)
  285. {
  286. throw new ArgumentNullException(nameof(source7));
  287. }
  288. if (source8 == null)
  289. {
  290. throw new ArgumentNullException(nameof(source8));
  291. }
  292. if (resultSelector == null)
  293. {
  294. throw new ArgumentNullException(nameof(resultSelector));
  295. }
  296. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, resultSelector);
  297. }
  298. /// <summary>
  299. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  300. /// </summary>
  301. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  302. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  303. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  304. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  305. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  306. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  307. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  308. /// <typeparam name="TSource8">The type of the elements in the eighth source sequence.</typeparam>
  309. /// <typeparam name="TSource9">The type of the elements in the ninth source sequence.</typeparam>
  310. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  311. /// <param name="source1">First observable source.</param>
  312. /// <param name="source2">Second observable source.</param>
  313. /// <param name="source3">Third observable source.</param>
  314. /// <param name="source4">Fourth observable source.</param>
  315. /// <param name="source5">Fifth observable source.</param>
  316. /// <param name="source6">Sixth observable source.</param>
  317. /// <param name="source7">Seventh observable source.</param>
  318. /// <param name="source8">Eighth observable source.</param>
  319. /// <param name="source9">Ninth observable source.</param>
  320. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  321. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  322. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="source8"/> or <paramref name="source9"/> or <paramref name="resultSelector"/> is null.</exception>
  323. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, IObservable<TSource8> source8, IObservable<TSource9> source9, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult> resultSelector)
  324. {
  325. if (source1 == null)
  326. {
  327. throw new ArgumentNullException(nameof(source1));
  328. }
  329. if (source2 == null)
  330. {
  331. throw new ArgumentNullException(nameof(source2));
  332. }
  333. if (source3 == null)
  334. {
  335. throw new ArgumentNullException(nameof(source3));
  336. }
  337. if (source4 == null)
  338. {
  339. throw new ArgumentNullException(nameof(source4));
  340. }
  341. if (source5 == null)
  342. {
  343. throw new ArgumentNullException(nameof(source5));
  344. }
  345. if (source6 == null)
  346. {
  347. throw new ArgumentNullException(nameof(source6));
  348. }
  349. if (source7 == null)
  350. {
  351. throw new ArgumentNullException(nameof(source7));
  352. }
  353. if (source8 == null)
  354. {
  355. throw new ArgumentNullException(nameof(source8));
  356. }
  357. if (source9 == null)
  358. {
  359. throw new ArgumentNullException(nameof(source9));
  360. }
  361. if (resultSelector == null)
  362. {
  363. throw new ArgumentNullException(nameof(resultSelector));
  364. }
  365. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, resultSelector);
  366. }
  367. /// <summary>
  368. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  369. /// </summary>
  370. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  371. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  372. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  373. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  374. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  375. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  376. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  377. /// <typeparam name="TSource8">The type of the elements in the eighth source sequence.</typeparam>
  378. /// <typeparam name="TSource9">The type of the elements in the ninth source sequence.</typeparam>
  379. /// <typeparam name="TSource10">The type of the elements in the tenth source sequence.</typeparam>
  380. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  381. /// <param name="source1">First observable source.</param>
  382. /// <param name="source2">Second observable source.</param>
  383. /// <param name="source3">Third observable source.</param>
  384. /// <param name="source4">Fourth observable source.</param>
  385. /// <param name="source5">Fifth observable source.</param>
  386. /// <param name="source6">Sixth observable source.</param>
  387. /// <param name="source7">Seventh observable source.</param>
  388. /// <param name="source8">Eighth observable source.</param>
  389. /// <param name="source9">Ninth observable source.</param>
  390. /// <param name="source10">Tenth observable source.</param>
  391. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  392. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  393. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="source8"/> or <paramref name="source9"/> or <paramref name="source10"/> or <paramref name="resultSelector"/> is null.</exception>
  394. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, IObservable<TSource8> source8, IObservable<TSource9> source9, IObservable<TSource10> source10, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult> resultSelector)
  395. {
  396. if (source1 == null)
  397. {
  398. throw new ArgumentNullException(nameof(source1));
  399. }
  400. if (source2 == null)
  401. {
  402. throw new ArgumentNullException(nameof(source2));
  403. }
  404. if (source3 == null)
  405. {
  406. throw new ArgumentNullException(nameof(source3));
  407. }
  408. if (source4 == null)
  409. {
  410. throw new ArgumentNullException(nameof(source4));
  411. }
  412. if (source5 == null)
  413. {
  414. throw new ArgumentNullException(nameof(source5));
  415. }
  416. if (source6 == null)
  417. {
  418. throw new ArgumentNullException(nameof(source6));
  419. }
  420. if (source7 == null)
  421. {
  422. throw new ArgumentNullException(nameof(source7));
  423. }
  424. if (source8 == null)
  425. {
  426. throw new ArgumentNullException(nameof(source8));
  427. }
  428. if (source9 == null)
  429. {
  430. throw new ArgumentNullException(nameof(source9));
  431. }
  432. if (source10 == null)
  433. {
  434. throw new ArgumentNullException(nameof(source10));
  435. }
  436. if (resultSelector == null)
  437. {
  438. throw new ArgumentNullException(nameof(resultSelector));
  439. }
  440. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, resultSelector);
  441. }
  442. /// <summary>
  443. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  444. /// </summary>
  445. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  446. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  447. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  448. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  449. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  450. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  451. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  452. /// <typeparam name="TSource8">The type of the elements in the eighth source sequence.</typeparam>
  453. /// <typeparam name="TSource9">The type of the elements in the ninth source sequence.</typeparam>
  454. /// <typeparam name="TSource10">The type of the elements in the tenth source sequence.</typeparam>
  455. /// <typeparam name="TSource11">The type of the elements in the eleventh source sequence.</typeparam>
  456. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  457. /// <param name="source1">First observable source.</param>
  458. /// <param name="source2">Second observable source.</param>
  459. /// <param name="source3">Third observable source.</param>
  460. /// <param name="source4">Fourth observable source.</param>
  461. /// <param name="source5">Fifth observable source.</param>
  462. /// <param name="source6">Sixth observable source.</param>
  463. /// <param name="source7">Seventh observable source.</param>
  464. /// <param name="source8">Eighth observable source.</param>
  465. /// <param name="source9">Ninth observable source.</param>
  466. /// <param name="source10">Tenth observable source.</param>
  467. /// <param name="source11">Eleventh observable source.</param>
  468. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  469. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  470. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="source8"/> or <paramref name="source9"/> or <paramref name="source10"/> or <paramref name="source11"/> or <paramref name="resultSelector"/> is null.</exception>
  471. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, IObservable<TSource8> source8, IObservable<TSource9> source9, IObservable<TSource10> source10, IObservable<TSource11> source11, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult> resultSelector)
  472. {
  473. if (source1 == null)
  474. {
  475. throw new ArgumentNullException(nameof(source1));
  476. }
  477. if (source2 == null)
  478. {
  479. throw new ArgumentNullException(nameof(source2));
  480. }
  481. if (source3 == null)
  482. {
  483. throw new ArgumentNullException(nameof(source3));
  484. }
  485. if (source4 == null)
  486. {
  487. throw new ArgumentNullException(nameof(source4));
  488. }
  489. if (source5 == null)
  490. {
  491. throw new ArgumentNullException(nameof(source5));
  492. }
  493. if (source6 == null)
  494. {
  495. throw new ArgumentNullException(nameof(source6));
  496. }
  497. if (source7 == null)
  498. {
  499. throw new ArgumentNullException(nameof(source7));
  500. }
  501. if (source8 == null)
  502. {
  503. throw new ArgumentNullException(nameof(source8));
  504. }
  505. if (source9 == null)
  506. {
  507. throw new ArgumentNullException(nameof(source9));
  508. }
  509. if (source10 == null)
  510. {
  511. throw new ArgumentNullException(nameof(source10));
  512. }
  513. if (source11 == null)
  514. {
  515. throw new ArgumentNullException(nameof(source11));
  516. }
  517. if (resultSelector == null)
  518. {
  519. throw new ArgumentNullException(nameof(resultSelector));
  520. }
  521. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, resultSelector);
  522. }
  523. /// <summary>
  524. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  525. /// </summary>
  526. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  527. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  528. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  529. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  530. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  531. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  532. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  533. /// <typeparam name="TSource8">The type of the elements in the eighth source sequence.</typeparam>
  534. /// <typeparam name="TSource9">The type of the elements in the ninth source sequence.</typeparam>
  535. /// <typeparam name="TSource10">The type of the elements in the tenth source sequence.</typeparam>
  536. /// <typeparam name="TSource11">The type of the elements in the eleventh source sequence.</typeparam>
  537. /// <typeparam name="TSource12">The type of the elements in the twelfth source sequence.</typeparam>
  538. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  539. /// <param name="source1">First observable source.</param>
  540. /// <param name="source2">Second observable source.</param>
  541. /// <param name="source3">Third observable source.</param>
  542. /// <param name="source4">Fourth observable source.</param>
  543. /// <param name="source5">Fifth observable source.</param>
  544. /// <param name="source6">Sixth observable source.</param>
  545. /// <param name="source7">Seventh observable source.</param>
  546. /// <param name="source8">Eighth observable source.</param>
  547. /// <param name="source9">Ninth observable source.</param>
  548. /// <param name="source10">Tenth observable source.</param>
  549. /// <param name="source11">Eleventh observable source.</param>
  550. /// <param name="source12">Twelfth observable source.</param>
  551. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  552. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  553. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="source8"/> or <paramref name="source9"/> or <paramref name="source10"/> or <paramref name="source11"/> or <paramref name="source12"/> or <paramref name="resultSelector"/> is null.</exception>
  554. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, IObservable<TSource8> source8, IObservable<TSource9> source9, IObservable<TSource10> source10, IObservable<TSource11> source11, IObservable<TSource12> source12, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TResult> resultSelector)
  555. {
  556. if (source1 == null)
  557. {
  558. throw new ArgumentNullException(nameof(source1));
  559. }
  560. if (source2 == null)
  561. {
  562. throw new ArgumentNullException(nameof(source2));
  563. }
  564. if (source3 == null)
  565. {
  566. throw new ArgumentNullException(nameof(source3));
  567. }
  568. if (source4 == null)
  569. {
  570. throw new ArgumentNullException(nameof(source4));
  571. }
  572. if (source5 == null)
  573. {
  574. throw new ArgumentNullException(nameof(source5));
  575. }
  576. if (source6 == null)
  577. {
  578. throw new ArgumentNullException(nameof(source6));
  579. }
  580. if (source7 == null)
  581. {
  582. throw new ArgumentNullException(nameof(source7));
  583. }
  584. if (source8 == null)
  585. {
  586. throw new ArgumentNullException(nameof(source8));
  587. }
  588. if (source9 == null)
  589. {
  590. throw new ArgumentNullException(nameof(source9));
  591. }
  592. if (source10 == null)
  593. {
  594. throw new ArgumentNullException(nameof(source10));
  595. }
  596. if (source11 == null)
  597. {
  598. throw new ArgumentNullException(nameof(source11));
  599. }
  600. if (source12 == null)
  601. {
  602. throw new ArgumentNullException(nameof(source12));
  603. }
  604. if (resultSelector == null)
  605. {
  606. throw new ArgumentNullException(nameof(resultSelector));
  607. }
  608. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, resultSelector);
  609. }
  610. /// <summary>
  611. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  612. /// </summary>
  613. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  614. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  615. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  616. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  617. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  618. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  619. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  620. /// <typeparam name="TSource8">The type of the elements in the eighth source sequence.</typeparam>
  621. /// <typeparam name="TSource9">The type of the elements in the ninth source sequence.</typeparam>
  622. /// <typeparam name="TSource10">The type of the elements in the tenth source sequence.</typeparam>
  623. /// <typeparam name="TSource11">The type of the elements in the eleventh source sequence.</typeparam>
  624. /// <typeparam name="TSource12">The type of the elements in the twelfth source sequence.</typeparam>
  625. /// <typeparam name="TSource13">The type of the elements in the thirteenth source sequence.</typeparam>
  626. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  627. /// <param name="source1">First observable source.</param>
  628. /// <param name="source2">Second observable source.</param>
  629. /// <param name="source3">Third observable source.</param>
  630. /// <param name="source4">Fourth observable source.</param>
  631. /// <param name="source5">Fifth observable source.</param>
  632. /// <param name="source6">Sixth observable source.</param>
  633. /// <param name="source7">Seventh observable source.</param>
  634. /// <param name="source8">Eighth observable source.</param>
  635. /// <param name="source9">Ninth observable source.</param>
  636. /// <param name="source10">Tenth observable source.</param>
  637. /// <param name="source11">Eleventh observable source.</param>
  638. /// <param name="source12">Twelfth observable source.</param>
  639. /// <param name="source13">Thirteenth observable source.</param>
  640. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  641. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  642. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="source8"/> or <paramref name="source9"/> or <paramref name="source10"/> or <paramref name="source11"/> or <paramref name="source12"/> or <paramref name="source13"/> or <paramref name="resultSelector"/> is null.</exception>
  643. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, IObservable<TSource8> source8, IObservable<TSource9> source9, IObservable<TSource10> source10, IObservable<TSource11> source11, IObservable<TSource12> source12, IObservable<TSource13> source13, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TResult> resultSelector)
  644. {
  645. if (source1 == null)
  646. {
  647. throw new ArgumentNullException(nameof(source1));
  648. }
  649. if (source2 == null)
  650. {
  651. throw new ArgumentNullException(nameof(source2));
  652. }
  653. if (source3 == null)
  654. {
  655. throw new ArgumentNullException(nameof(source3));
  656. }
  657. if (source4 == null)
  658. {
  659. throw new ArgumentNullException(nameof(source4));
  660. }
  661. if (source5 == null)
  662. {
  663. throw new ArgumentNullException(nameof(source5));
  664. }
  665. if (source6 == null)
  666. {
  667. throw new ArgumentNullException(nameof(source6));
  668. }
  669. if (source7 == null)
  670. {
  671. throw new ArgumentNullException(nameof(source7));
  672. }
  673. if (source8 == null)
  674. {
  675. throw new ArgumentNullException(nameof(source8));
  676. }
  677. if (source9 == null)
  678. {
  679. throw new ArgumentNullException(nameof(source9));
  680. }
  681. if (source10 == null)
  682. {
  683. throw new ArgumentNullException(nameof(source10));
  684. }
  685. if (source11 == null)
  686. {
  687. throw new ArgumentNullException(nameof(source11));
  688. }
  689. if (source12 == null)
  690. {
  691. throw new ArgumentNullException(nameof(source12));
  692. }
  693. if (source13 == null)
  694. {
  695. throw new ArgumentNullException(nameof(source13));
  696. }
  697. if (resultSelector == null)
  698. {
  699. throw new ArgumentNullException(nameof(resultSelector));
  700. }
  701. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, resultSelector);
  702. }
  703. /// <summary>
  704. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  705. /// </summary>
  706. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  707. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  708. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  709. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  710. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  711. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  712. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  713. /// <typeparam name="TSource8">The type of the elements in the eighth source sequence.</typeparam>
  714. /// <typeparam name="TSource9">The type of the elements in the ninth source sequence.</typeparam>
  715. /// <typeparam name="TSource10">The type of the elements in the tenth source sequence.</typeparam>
  716. /// <typeparam name="TSource11">The type of the elements in the eleventh source sequence.</typeparam>
  717. /// <typeparam name="TSource12">The type of the elements in the twelfth source sequence.</typeparam>
  718. /// <typeparam name="TSource13">The type of the elements in the thirteenth source sequence.</typeparam>
  719. /// <typeparam name="TSource14">The type of the elements in the fourteenth source sequence.</typeparam>
  720. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  721. /// <param name="source1">First observable source.</param>
  722. /// <param name="source2">Second observable source.</param>
  723. /// <param name="source3">Third observable source.</param>
  724. /// <param name="source4">Fourth observable source.</param>
  725. /// <param name="source5">Fifth observable source.</param>
  726. /// <param name="source6">Sixth observable source.</param>
  727. /// <param name="source7">Seventh observable source.</param>
  728. /// <param name="source8">Eighth observable source.</param>
  729. /// <param name="source9">Ninth observable source.</param>
  730. /// <param name="source10">Tenth observable source.</param>
  731. /// <param name="source11">Eleventh observable source.</param>
  732. /// <param name="source12">Twelfth observable source.</param>
  733. /// <param name="source13">Thirteenth observable source.</param>
  734. /// <param name="source14">Fourteenth observable source.</param>
  735. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  736. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  737. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="source8"/> or <paramref name="source9"/> or <paramref name="source10"/> or <paramref name="source11"/> or <paramref name="source12"/> or <paramref name="source13"/> or <paramref name="source14"/> or <paramref name="resultSelector"/> is null.</exception>
  738. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, IObservable<TSource8> source8, IObservable<TSource9> source9, IObservable<TSource10> source10, IObservable<TSource11> source11, IObservable<TSource12> source12, IObservable<TSource13> source13, IObservable<TSource14> source14, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TResult> resultSelector)
  739. {
  740. if (source1 == null)
  741. {
  742. throw new ArgumentNullException(nameof(source1));
  743. }
  744. if (source2 == null)
  745. {
  746. throw new ArgumentNullException(nameof(source2));
  747. }
  748. if (source3 == null)
  749. {
  750. throw new ArgumentNullException(nameof(source3));
  751. }
  752. if (source4 == null)
  753. {
  754. throw new ArgumentNullException(nameof(source4));
  755. }
  756. if (source5 == null)
  757. {
  758. throw new ArgumentNullException(nameof(source5));
  759. }
  760. if (source6 == null)
  761. {
  762. throw new ArgumentNullException(nameof(source6));
  763. }
  764. if (source7 == null)
  765. {
  766. throw new ArgumentNullException(nameof(source7));
  767. }
  768. if (source8 == null)
  769. {
  770. throw new ArgumentNullException(nameof(source8));
  771. }
  772. if (source9 == null)
  773. {
  774. throw new ArgumentNullException(nameof(source9));
  775. }
  776. if (source10 == null)
  777. {
  778. throw new ArgumentNullException(nameof(source10));
  779. }
  780. if (source11 == null)
  781. {
  782. throw new ArgumentNullException(nameof(source11));
  783. }
  784. if (source12 == null)
  785. {
  786. throw new ArgumentNullException(nameof(source12));
  787. }
  788. if (source13 == null)
  789. {
  790. throw new ArgumentNullException(nameof(source13));
  791. }
  792. if (source14 == null)
  793. {
  794. throw new ArgumentNullException(nameof(source14));
  795. }
  796. if (resultSelector == null)
  797. {
  798. throw new ArgumentNullException(nameof(resultSelector));
  799. }
  800. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, resultSelector);
  801. }
  802. /// <summary>
  803. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  804. /// </summary>
  805. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  806. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  807. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  808. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  809. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  810. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  811. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  812. /// <typeparam name="TSource8">The type of the elements in the eighth source sequence.</typeparam>
  813. /// <typeparam name="TSource9">The type of the elements in the ninth source sequence.</typeparam>
  814. /// <typeparam name="TSource10">The type of the elements in the tenth source sequence.</typeparam>
  815. /// <typeparam name="TSource11">The type of the elements in the eleventh source sequence.</typeparam>
  816. /// <typeparam name="TSource12">The type of the elements in the twelfth source sequence.</typeparam>
  817. /// <typeparam name="TSource13">The type of the elements in the thirteenth source sequence.</typeparam>
  818. /// <typeparam name="TSource14">The type of the elements in the fourteenth source sequence.</typeparam>
  819. /// <typeparam name="TSource15">The type of the elements in the fifteenth source sequence.</typeparam>
  820. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  821. /// <param name="source1">First observable source.</param>
  822. /// <param name="source2">Second observable source.</param>
  823. /// <param name="source3">Third observable source.</param>
  824. /// <param name="source4">Fourth observable source.</param>
  825. /// <param name="source5">Fifth observable source.</param>
  826. /// <param name="source6">Sixth observable source.</param>
  827. /// <param name="source7">Seventh observable source.</param>
  828. /// <param name="source8">Eighth observable source.</param>
  829. /// <param name="source9">Ninth observable source.</param>
  830. /// <param name="source10">Tenth observable source.</param>
  831. /// <param name="source11">Eleventh observable source.</param>
  832. /// <param name="source12">Twelfth observable source.</param>
  833. /// <param name="source13">Thirteenth observable source.</param>
  834. /// <param name="source14">Fourteenth observable source.</param>
  835. /// <param name="source15">Fifteenth observable source.</param>
  836. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  837. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  838. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="source8"/> or <paramref name="source9"/> or <paramref name="source10"/> or <paramref name="source11"/> or <paramref name="source12"/> or <paramref name="source13"/> or <paramref name="source14"/> or <paramref name="source15"/> or <paramref name="resultSelector"/> is null.</exception>
  839. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, IObservable<TSource8> source8, IObservable<TSource9> source9, IObservable<TSource10> source10, IObservable<TSource11> source11, IObservable<TSource12> source12, IObservable<TSource13> source13, IObservable<TSource14> source14, IObservable<TSource15> source15, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TResult> resultSelector)
  840. {
  841. if (source1 == null)
  842. {
  843. throw new ArgumentNullException(nameof(source1));
  844. }
  845. if (source2 == null)
  846. {
  847. throw new ArgumentNullException(nameof(source2));
  848. }
  849. if (source3 == null)
  850. {
  851. throw new ArgumentNullException(nameof(source3));
  852. }
  853. if (source4 == null)
  854. {
  855. throw new ArgumentNullException(nameof(source4));
  856. }
  857. if (source5 == null)
  858. {
  859. throw new ArgumentNullException(nameof(source5));
  860. }
  861. if (source6 == null)
  862. {
  863. throw new ArgumentNullException(nameof(source6));
  864. }
  865. if (source7 == null)
  866. {
  867. throw new ArgumentNullException(nameof(source7));
  868. }
  869. if (source8 == null)
  870. {
  871. throw new ArgumentNullException(nameof(source8));
  872. }
  873. if (source9 == null)
  874. {
  875. throw new ArgumentNullException(nameof(source9));
  876. }
  877. if (source10 == null)
  878. {
  879. throw new ArgumentNullException(nameof(source10));
  880. }
  881. if (source11 == null)
  882. {
  883. throw new ArgumentNullException(nameof(source11));
  884. }
  885. if (source12 == null)
  886. {
  887. throw new ArgumentNullException(nameof(source12));
  888. }
  889. if (source13 == null)
  890. {
  891. throw new ArgumentNullException(nameof(source13));
  892. }
  893. if (source14 == null)
  894. {
  895. throw new ArgumentNullException(nameof(source14));
  896. }
  897. if (source15 == null)
  898. {
  899. throw new ArgumentNullException(nameof(source15));
  900. }
  901. if (resultSelector == null)
  902. {
  903. throw new ArgumentNullException(nameof(resultSelector));
  904. }
  905. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, resultSelector);
  906. }
  907. /// <summary>
  908. /// Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
  909. /// </summary>
  910. /// <typeparam name="TSource1">The type of the elements in the first source sequence.</typeparam>
  911. /// <typeparam name="TSource2">The type of the elements in the second source sequence.</typeparam>
  912. /// <typeparam name="TSource3">The type of the elements in the third source sequence.</typeparam>
  913. /// <typeparam name="TSource4">The type of the elements in the fourth source sequence.</typeparam>
  914. /// <typeparam name="TSource5">The type of the elements in the fifth source sequence.</typeparam>
  915. /// <typeparam name="TSource6">The type of the elements in the sixth source sequence.</typeparam>
  916. /// <typeparam name="TSource7">The type of the elements in the seventh source sequence.</typeparam>
  917. /// <typeparam name="TSource8">The type of the elements in the eighth source sequence.</typeparam>
  918. /// <typeparam name="TSource9">The type of the elements in the ninth source sequence.</typeparam>
  919. /// <typeparam name="TSource10">The type of the elements in the tenth source sequence.</typeparam>
  920. /// <typeparam name="TSource11">The type of the elements in the eleventh source sequence.</typeparam>
  921. /// <typeparam name="TSource12">The type of the elements in the twelfth source sequence.</typeparam>
  922. /// <typeparam name="TSource13">The type of the elements in the thirteenth source sequence.</typeparam>
  923. /// <typeparam name="TSource14">The type of the elements in the fourteenth source sequence.</typeparam>
  924. /// <typeparam name="TSource15">The type of the elements in the fifteenth source sequence.</typeparam>
  925. /// <typeparam name="TSource16">The type of the elements in the sixteenth source sequence.</typeparam>
  926. /// <typeparam name="TResult">The type of the elements in the result sequence, returned by the selector function.</typeparam>
  927. /// <param name="source1">First observable source.</param>
  928. /// <param name="source2">Second observable source.</param>
  929. /// <param name="source3">Third observable source.</param>
  930. /// <param name="source4">Fourth observable source.</param>
  931. /// <param name="source5">Fifth observable source.</param>
  932. /// <param name="source6">Sixth observable source.</param>
  933. /// <param name="source7">Seventh observable source.</param>
  934. /// <param name="source8">Eighth observable source.</param>
  935. /// <param name="source9">Ninth observable source.</param>
  936. /// <param name="source10">Tenth observable source.</param>
  937. /// <param name="source11">Eleventh observable source.</param>
  938. /// <param name="source12">Twelfth observable source.</param>
  939. /// <param name="source13">Thirteenth observable source.</param>
  940. /// <param name="source14">Fourteenth observable source.</param>
  941. /// <param name="source15">Fifteenth observable source.</param>
  942. /// <param name="source16">Sixteenth observable source.</param>
  943. /// <param name="resultSelector">Function to invoke for each series of elements at corresponding indexes in the sources.</param>
  944. /// <returns>An observable sequence containing the result of combining elements of the sources using the specified result selector function.</returns>
  945. /// <exception cref="ArgumentNullException"><paramref name="source1"/> or <paramref name="source2"/> or <paramref name="source3"/> or <paramref name="source4"/> or <paramref name="source5"/> or <paramref name="source6"/> or <paramref name="source7"/> or <paramref name="source8"/> or <paramref name="source9"/> or <paramref name="source10"/> or <paramref name="source11"/> or <paramref name="source12"/> or <paramref name="source13"/> or <paramref name="source14"/> or <paramref name="source15"/> or <paramref name="source16"/> or <paramref name="resultSelector"/> is null.</exception>
  946. public static IObservable<TResult> Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, TResult>(this IObservable<TSource1> source1, IObservable<TSource2> source2, IObservable<TSource3> source3, IObservable<TSource4> source4, IObservable<TSource5> source5, IObservable<TSource6> source6, IObservable<TSource7> source7, IObservable<TSource8> source8, IObservable<TSource9> source9, IObservable<TSource10> source10, IObservable<TSource11> source11, IObservable<TSource12> source12, IObservable<TSource13> source13, IObservable<TSource14> source14, IObservable<TSource15> source15, IObservable<TSource16> source16, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, TResult> resultSelector)
  947. {
  948. if (source1 == null)
  949. {
  950. throw new ArgumentNullException(nameof(source1));
  951. }
  952. if (source2 == null)
  953. {
  954. throw new ArgumentNullException(nameof(source2));
  955. }
  956. if (source3 == null)
  957. {
  958. throw new ArgumentNullException(nameof(source3));
  959. }
  960. if (source4 == null)
  961. {
  962. throw new ArgumentNullException(nameof(source4));
  963. }
  964. if (source5 == null)
  965. {
  966. throw new ArgumentNullException(nameof(source5));
  967. }
  968. if (source6 == null)
  969. {
  970. throw new ArgumentNullException(nameof(source6));
  971. }
  972. if (source7 == null)
  973. {
  974. throw new ArgumentNullException(nameof(source7));
  975. }
  976. if (source8 == null)
  977. {
  978. throw new ArgumentNullException(nameof(source8));
  979. }
  980. if (source9 == null)
  981. {
  982. throw new ArgumentNullException(nameof(source9));
  983. }
  984. if (source10 == null)
  985. {
  986. throw new ArgumentNullException(nameof(source10));
  987. }
  988. if (source11 == null)
  989. {
  990. throw new ArgumentNullException(nameof(source11));
  991. }
  992. if (source12 == null)
  993. {
  994. throw new ArgumentNullException(nameof(source12));
  995. }
  996. if (source13 == null)
  997. {
  998. throw new ArgumentNullException(nameof(source13));
  999. }
  1000. if (source14 == null)
  1001. {
  1002. throw new ArgumentNullException(nameof(source14));
  1003. }
  1004. if (source15 == null)
  1005. {
  1006. throw new ArgumentNullException(nameof(source15));
  1007. }
  1008. if (source16 == null)
  1009. {
  1010. throw new ArgumentNullException(nameof(source16));
  1011. }
  1012. if (resultSelector == null)
  1013. {
  1014. throw new ArgumentNullException(nameof(resultSelector));
  1015. }
  1016. return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, source16, resultSelector);
  1017. }
  1018. #endregion
  1019. }
  1020. }