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.
5 #pragma warning disable SA1141 // explicitly not using tuple syntax in tuple implementation
7 using System
.ComponentModel
;
8 using System
.Runtime
.CompilerServices
;
13 /// Provides extension methods for <see cref="Tuple"/> instances to interop with C# tuples features (deconstruction syntax, converting from and to <see cref="ValueTuple"/>).
15 public static class TupleExtensions
19 /// Deconstruct a properly nested <see cref="Tuple"/> with 1 elements.
21 [EditorBrowsable(EditorBrowsableState
.Never
)]
22 public static void Deconstruct
<T1
>(
30 /// Deconstruct a properly nested <see cref="Tuple"/> with 2 elements.
32 [EditorBrowsable(EditorBrowsableState
.Never
)]
33 public static void Deconstruct
<T1
, T2
>(
34 this Tuple
<T1
, T2
> value,
35 out T1 item1
, out T2 item2
)
42 /// Deconstruct a properly nested <see cref="Tuple"/> with 3 elements.
44 [EditorBrowsable(EditorBrowsableState
.Never
)]
45 public static void Deconstruct
<T1
, T2
, T3
>(
46 this Tuple
<T1
, T2
, T3
> value,
47 out T1 item1
, out T2 item2
, out T3 item3
)
55 /// Deconstruct a properly nested <see cref="Tuple"/> with 4 elements.
57 [EditorBrowsable(EditorBrowsableState
.Never
)]
58 public static void Deconstruct
<T1
, T2
, T3
, T4
>(
59 this Tuple
<T1
, T2
, T3
, T4
> value,
60 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
)
69 /// Deconstruct a properly nested <see cref="Tuple"/> with 5 elements.
71 [EditorBrowsable(EditorBrowsableState
.Never
)]
72 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
>(
73 this Tuple
<T1
, T2
, T3
, T4
, T5
> value,
74 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
)
84 /// Deconstruct a properly nested <see cref="Tuple"/> with 6 elements.
86 [EditorBrowsable(EditorBrowsableState
.Never
)]
87 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
>(
88 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
> value,
89 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
)
100 /// Deconstruct a properly nested <see cref="Tuple"/> with 7 elements.
102 [EditorBrowsable(EditorBrowsableState
.Never
)]
103 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
>(
104 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
> value,
105 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
)
117 /// Deconstruct a properly nested <see cref="Tuple"/> with 8 elements.
119 [EditorBrowsable(EditorBrowsableState
.Never
)]
120 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
>(
121 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
>> value,
122 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
)
131 item8
= value.Rest
.Item1
;
135 /// Deconstruct a properly nested <see cref="Tuple"/> with 9 elements.
137 [EditorBrowsable(EditorBrowsableState
.Never
)]
138 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
>(
139 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
>> value,
140 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
)
149 item8
= value.Rest
.Item1
;
150 item9
= value.Rest
.Item2
;
154 /// Deconstruct a properly nested <see cref="Tuple"/> with 10 elements.
156 [EditorBrowsable(EditorBrowsableState
.Never
)]
157 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
>(
158 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
>> value,
159 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
)
168 item8
= value.Rest
.Item1
;
169 item9
= value.Rest
.Item2
;
170 item10
= value.Rest
.Item3
;
174 /// Deconstruct a properly nested <see cref="Tuple"/> with 11 elements.
176 [EditorBrowsable(EditorBrowsableState
.Never
)]
177 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
>(
178 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
>> value,
179 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
)
188 item8
= value.Rest
.Item1
;
189 item9
= value.Rest
.Item2
;
190 item10
= value.Rest
.Item3
;
191 item11
= value.Rest
.Item4
;
195 /// Deconstruct a properly nested <see cref="Tuple"/> with 12 elements.
197 [EditorBrowsable(EditorBrowsableState
.Never
)]
198 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
>(
199 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
>> value,
200 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
)
209 item8
= value.Rest
.Item1
;
210 item9
= value.Rest
.Item2
;
211 item10
= value.Rest
.Item3
;
212 item11
= value.Rest
.Item4
;
213 item12
= value.Rest
.Item5
;
217 /// Deconstruct a properly nested <see cref="Tuple"/> with 13 elements.
219 [EditorBrowsable(EditorBrowsableState
.Never
)]
220 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
>(
221 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
>> value,
222 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
, out T13 item13
)
231 item8
= value.Rest
.Item1
;
232 item9
= value.Rest
.Item2
;
233 item10
= value.Rest
.Item3
;
234 item11
= value.Rest
.Item4
;
235 item12
= value.Rest
.Item5
;
236 item13
= value.Rest
.Item6
;
240 /// Deconstruct a properly nested <see cref="Tuple"/> with 14 elements.
242 [EditorBrowsable(EditorBrowsableState
.Never
)]
243 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
>(
244 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
>> value,
245 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
, out T13 item13
, out T14 item14
)
254 item8
= value.Rest
.Item1
;
255 item9
= value.Rest
.Item2
;
256 item10
= value.Rest
.Item3
;
257 item11
= value.Rest
.Item4
;
258 item12
= value.Rest
.Item5
;
259 item13
= value.Rest
.Item6
;
260 item14
= value.Rest
.Item7
;
264 /// Deconstruct a properly nested <see cref="Tuple"/> with 15 elements.
266 [EditorBrowsable(EditorBrowsableState
.Never
)]
267 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
>(
268 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
>>> value,
269 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
, out T13 item13
, out T14 item14
, out T15 item15
)
278 item8
= value.Rest
.Item1
;
279 item9
= value.Rest
.Item2
;
280 item10
= value.Rest
.Item3
;
281 item11
= value.Rest
.Item4
;
282 item12
= value.Rest
.Item5
;
283 item13
= value.Rest
.Item6
;
284 item14
= value.Rest
.Item7
;
285 item15
= value.Rest
.Rest
.Item1
;
289 /// Deconstruct a properly nested <see cref="Tuple"/> with 16 elements.
291 [EditorBrowsable(EditorBrowsableState
.Never
)]
292 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
>(
293 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
>>> value,
294 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
, out T13 item13
, out T14 item14
, out T15 item15
, out T16 item16
)
303 item8
= value.Rest
.Item1
;
304 item9
= value.Rest
.Item2
;
305 item10
= value.Rest
.Item3
;
306 item11
= value.Rest
.Item4
;
307 item12
= value.Rest
.Item5
;
308 item13
= value.Rest
.Item6
;
309 item14
= value.Rest
.Item7
;
310 item15
= value.Rest
.Rest
.Item1
;
311 item16
= value.Rest
.Rest
.Item2
;
315 /// Deconstruct a properly nested <see cref="Tuple"/> with 17 elements.
317 [EditorBrowsable(EditorBrowsableState
.Never
)]
318 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
>(
319 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
>>> value,
320 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
, out T13 item13
, out T14 item14
, out T15 item15
, out T16 item16
, out T17 item17
)
329 item8
= value.Rest
.Item1
;
330 item9
= value.Rest
.Item2
;
331 item10
= value.Rest
.Item3
;
332 item11
= value.Rest
.Item4
;
333 item12
= value.Rest
.Item5
;
334 item13
= value.Rest
.Item6
;
335 item14
= value.Rest
.Item7
;
336 item15
= value.Rest
.Rest
.Item1
;
337 item16
= value.Rest
.Rest
.Item2
;
338 item17
= value.Rest
.Rest
.Item3
;
342 /// Deconstruct a properly nested <see cref="Tuple"/> with 18 elements.
344 [EditorBrowsable(EditorBrowsableState
.Never
)]
345 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
>(
346 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
>>> value,
347 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
, out T13 item13
, out T14 item14
, out T15 item15
, out T16 item16
, out T17 item17
, out T18 item18
)
356 item8
= value.Rest
.Item1
;
357 item9
= value.Rest
.Item2
;
358 item10
= value.Rest
.Item3
;
359 item11
= value.Rest
.Item4
;
360 item12
= value.Rest
.Item5
;
361 item13
= value.Rest
.Item6
;
362 item14
= value.Rest
.Item7
;
363 item15
= value.Rest
.Rest
.Item1
;
364 item16
= value.Rest
.Rest
.Item2
;
365 item17
= value.Rest
.Rest
.Item3
;
366 item18
= value.Rest
.Rest
.Item4
;
370 /// Deconstruct a properly nested <see cref="Tuple"/> with 19 elements.
372 [EditorBrowsable(EditorBrowsableState
.Never
)]
373 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
, T19
>(
374 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
, T19
>>> value,
375 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
, out T13 item13
, out T14 item14
, out T15 item15
, out T16 item16
, out T17 item17
, out T18 item18
, out T19 item19
)
384 item8
= value.Rest
.Item1
;
385 item9
= value.Rest
.Item2
;
386 item10
= value.Rest
.Item3
;
387 item11
= value.Rest
.Item4
;
388 item12
= value.Rest
.Item5
;
389 item13
= value.Rest
.Item6
;
390 item14
= value.Rest
.Item7
;
391 item15
= value.Rest
.Rest
.Item1
;
392 item16
= value.Rest
.Rest
.Item2
;
393 item17
= value.Rest
.Rest
.Item3
;
394 item18
= value.Rest
.Rest
.Item4
;
395 item19
= value.Rest
.Rest
.Item5
;
399 /// Deconstruct a properly nested <see cref="Tuple"/> with 20 elements.
401 [EditorBrowsable(EditorBrowsableState
.Never
)]
402 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
, T19
, T20
>(
403 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
, T19
, T20
>>> value,
404 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
, out T13 item13
, out T14 item14
, out T15 item15
, out T16 item16
, out T17 item17
, out T18 item18
, out T19 item19
, out T20 item20
)
413 item8
= value.Rest
.Item1
;
414 item9
= value.Rest
.Item2
;
415 item10
= value.Rest
.Item3
;
416 item11
= value.Rest
.Item4
;
417 item12
= value.Rest
.Item5
;
418 item13
= value.Rest
.Item6
;
419 item14
= value.Rest
.Item7
;
420 item15
= value.Rest
.Rest
.Item1
;
421 item16
= value.Rest
.Rest
.Item2
;
422 item17
= value.Rest
.Rest
.Item3
;
423 item18
= value.Rest
.Rest
.Item4
;
424 item19
= value.Rest
.Rest
.Item5
;
425 item20
= value.Rest
.Rest
.Item6
;
429 /// Deconstruct a properly nested <see cref="Tuple"/> with 21 elements.
431 [EditorBrowsable(EditorBrowsableState
.Never
)]
432 public static void Deconstruct
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
, T19
, T20
, T21
>(
433 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
, T19
, T20
, T21
>>> value,
434 out T1 item1
, out T2 item2
, out T3 item3
, out T4 item4
, out T5 item5
, out T6 item6
, out T7 item7
, out T8 item8
, out T9 item9
, out T10 item10
, out T11 item11
, out T12 item12
, out T13 item13
, out T14 item14
, out T15 item15
, out T16 item16
, out T17 item17
, out T18 item18
, out T19 item19
, out T20 item20
, out T21 item21
)
443 item8
= value.Rest
.Item1
;
444 item9
= value.Rest
.Item2
;
445 item10
= value.Rest
.Item3
;
446 item11
= value.Rest
.Item4
;
447 item12
= value.Rest
.Item5
;
448 item13
= value.Rest
.Item6
;
449 item14
= value.Rest
.Item7
;
450 item15
= value.Rest
.Rest
.Item1
;
451 item16
= value.Rest
.Rest
.Item2
;
452 item17
= value.Rest
.Rest
.Item3
;
453 item18
= value.Rest
.Rest
.Item4
;
454 item19
= value.Rest
.Rest
.Item5
;
455 item20
= value.Rest
.Rest
.Item6
;
456 item21
= value.Rest
.Rest
.Item7
;
462 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 1 element.
464 public static ValueTuple
<T1
>
466 this Tuple
<T1
> value)
468 return ValueTuple
.Create(value.Item1
);
472 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 2 elements.
474 public static ValueTuple
<T1
, T2
>
475 ToValueTuple
<T1
, T2
>(
476 this Tuple
<T1
, T2
> value)
478 return ValueTuple
.Create(value.Item1
, value.Item2
);
482 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 3 elements.
484 public static ValueTuple
<T1
, T2
, T3
>
485 ToValueTuple
<T1
, T2
, T3
>(
486 this Tuple
<T1
, T2
, T3
> value)
488 return ValueTuple
.Create(value.Item1
, value.Item2
, value.Item3
);
492 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 4 elements.
494 public static ValueTuple
<T1
, T2
, T3
, T4
>
495 ToValueTuple
<T1
, T2
, T3
, T4
>(
496 this Tuple
<T1
, T2
, T3
, T4
> value)
498 return ValueTuple
.Create(value.Item1
, value.Item2
, value.Item3
, value.Item4
);
502 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 5 elements.
504 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
>
505 ToValueTuple
<T1
, T2
, T3
, T4
, T5
>(
506 this Tuple
<T1
, T2
, T3
, T4
, T5
> value)
508 return ValueTuple
.Create(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
);
512 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 6 elements.
514 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
>
515 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
>(
516 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
> value)
518 return ValueTuple
.Create(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
);
522 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 7 elements.
524 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
>
525 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
>(
526 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
> value)
528 return ValueTuple
.Create(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
);
532 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 8 elements.
534 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
>>
535 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
>(
536 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
>> value)
538 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
539 ValueTuple
.Create(value.Rest
.Item1
));
543 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 9 elements.
545 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
>>
546 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
>(
547 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
>> value)
549 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
550 ValueTuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
));
554 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 10 elements.
556 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
>>
557 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
>(
558 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
>> value)
560 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
561 ValueTuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
));
565 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 11 elements.
567 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
>>
568 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
>(
569 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
>> value)
571 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
572 ValueTuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
));
576 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 12 elements.
578 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
>>
579 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
>(
580 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
>> value)
582 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
583 ValueTuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
));
587 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 13 elements.
589 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
>>
590 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
>(
591 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
>> value)
593 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
594 ValueTuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
));
598 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 14 elements.
600 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
>>
601 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
>(
602 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
>> value)
604 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
605 ValueTuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
));
609 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 15 elements.
611 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
>>>
612 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
>(
613 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
>>> value)
615 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
616 CreateLong(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
617 ValueTuple
.Create(value.Rest
.Rest
.Item1
)));
621 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 16 elements.
623 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
>>>
624 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
>(
625 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
>>> value)
627 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
628 CreateLong(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
629 ValueTuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
)));
633 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 17 elements.
635 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
>>>
636 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
>(
637 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
>>> value)
639 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
640 CreateLong(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
641 ValueTuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
)));
645 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 18 elements.
647 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
, T18
>>>
648 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
>(
649 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
>>> value)
651 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
652 CreateLong(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
653 ValueTuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
, value.Rest
.Rest
.Item4
)));
657 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 19 elements.
659 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
, T18
, T19
>>>
660 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
, T19
>(
661 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
, T19
>>> value)
663 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
664 CreateLong(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
665 ValueTuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
, value.Rest
.Rest
.Item4
, value.Rest
.Rest
.Item5
)));
669 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 20 elements.
671 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
, T18
, T19
, T20
>>>
672 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
, T19
, T20
>(
673 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
, T19
, T20
>>> value)
675 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
676 CreateLong(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
677 ValueTuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
, value.Rest
.Rest
.Item4
, value.Rest
.Rest
.Item5
, value.Rest
.Rest
.Item6
)));
681 /// Make a properly nested <see cref="ValueTuple"/> from a properly nested <see cref="Tuple"/> with 21 elements.
683 public static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
, T18
, T19
, T20
, T21
>>>
684 ToValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
, T19
, T20
, T21
>(
685 this Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
, T19
, T20
, T21
>>> value)
687 return CreateLong(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
688 CreateLong(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
689 ValueTuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
, value.Rest
.Rest
.Item4
, value.Rest
.Rest
.Item5
, value.Rest
.Rest
.Item6
, value.Rest
.Rest
.Item7
)));
695 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 1 element.
697 public static Tuple
<T1
>
699 this ValueTuple
<T1
> value)
701 return Tuple
.Create(value.Item1
);
705 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 2 elements.
707 public static Tuple
<T1
, T2
>
709 this ValueTuple
<T1
, T2
> value)
711 return Tuple
.Create(value.Item1
, value.Item2
);
715 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 3 elements.
717 public static Tuple
<T1
, T2
, T3
>
719 this ValueTuple
<T1
, T2
, T3
> value)
721 return Tuple
.Create(value.Item1
, value.Item2
, value.Item3
);
725 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 4 elements.
727 public static Tuple
<T1
, T2
, T3
, T4
>
728 ToTuple
<T1
, T2
, T3
, T4
>(
729 this ValueTuple
<T1
, T2
, T3
, T4
> value)
731 return Tuple
.Create(value.Item1
, value.Item2
, value.Item3
, value.Item4
);
735 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 5 elements.
737 public static Tuple
<T1
, T2
, T3
, T4
, T5
>
738 ToTuple
<T1
, T2
, T3
, T4
, T5
>(
739 this ValueTuple
<T1
, T2
, T3
, T4
, T5
> value)
741 return Tuple
.Create(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
);
745 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 6 elements.
747 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
>
748 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
>(
749 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
> value)
751 return Tuple
.Create(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
);
755 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 7 elements.
757 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
>
758 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
>(
759 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
> value)
761 return Tuple
.Create(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
);
765 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 8 elements.
767 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
>>
768 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
>(
769 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
>> value)
771 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
772 Tuple
.Create(value.Rest
.Item1
));
776 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 9 elements.
778 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
>>
779 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
>(
780 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
>> value)
782 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
783 Tuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
));
787 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 10 elements.
789 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
>>
790 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
>(
791 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
>> value)
793 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
794 Tuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
));
798 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 11 elements.
800 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
>>
801 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
>(
802 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
>> value)
804 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
805 Tuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
));
809 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 12 elements.
811 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
>>
812 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
>(
813 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
>> value)
815 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
816 Tuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
));
820 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 13 elements.
822 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
>>
823 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
>(
824 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
>> value)
826 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
827 Tuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
));
831 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 14 elements.
833 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
>>
834 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
>(
835 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
>> value)
837 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
838 Tuple
.Create(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
));
842 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 15 elements.
844 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
>>>
845 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
>(
846 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
>>> value)
848 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
849 CreateLongRef(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
850 Tuple
.Create(value.Rest
.Rest
.Item1
)));
854 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 16 elements.
856 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
>>>
857 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
>(
858 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
>>> value)
860 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
861 CreateLongRef(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
862 Tuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
)));
866 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 17 elements.
868 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
>>>
869 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
>(
870 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
>>> value)
872 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
873 CreateLongRef(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
874 Tuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
)));
878 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 18 elements.
880 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
>>>
881 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
>(
882 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
, T18
>>> value)
884 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
885 CreateLongRef(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
886 Tuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
, value.Rest
.Rest
.Item4
)));
890 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 19 elements.
892 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
, T19
>>>
893 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
, T19
>(
894 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
, T18
, T19
>>> value)
896 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
897 CreateLongRef(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
898 Tuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
, value.Rest
.Rest
.Item4
, value.Rest
.Rest
.Item5
)));
902 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 20 elements.
904 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
, T19
, T20
>>>
905 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
, T19
, T20
>(
906 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
, T18
, T19
, T20
>>> value)
908 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
909 CreateLongRef(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
910 Tuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
, value.Rest
.Rest
.Item4
, value.Rest
.Rest
.Item5
, value.Rest
.Rest
.Item6
)));
914 /// Make a properly nested <see cref="Tuple"/> from a properly nested <see cref="ValueTuple"/> with 21 elements.
916 public static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, Tuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, Tuple
<T15
, T16
, T17
, T18
, T19
, T20
, T21
>>>
917 ToTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, T17
, T18
, T19
, T20
, T21
>(
918 this ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, ValueTuple
<T8
, T9
, T10
, T11
, T12
, T13
, T14
, ValueTuple
<T15
, T16
, T17
, T18
, T19
, T20
, T21
>>> value)
920 return CreateLongRef(value.Item1
, value.Item2
, value.Item3
, value.Item4
, value.Item5
, value.Item6
, value.Item7
,
921 CreateLongRef(value.Rest
.Item1
, value.Rest
.Item2
, value.Rest
.Item3
, value.Rest
.Item4
, value.Rest
.Item5
, value.Rest
.Item6
, value.Rest
.Item7
,
922 Tuple
.Create(value.Rest
.Rest
.Item1
, value.Rest
.Rest
.Item2
, value.Rest
.Rest
.Item3
, value.Rest
.Rest
.Item4
, value.Rest
.Rest
.Item5
, value.Rest
.Rest
.Item6
, value.Rest
.Rest
.Item7
)));
926 private static ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, TRest
> CreateLong
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, TRest
>(T1 item1
, T2 item2
, T3 item3
, T4 item4
, T5 item5
, T6 item6
, T7 item7
, TRest rest
) where TRest
: struct, ITuple
=>
927 new ValueTuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, TRest
>(item1
, item2
, item3
, item4
, item5
, item6
, item7
, rest
);
929 private static Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, TRest
> CreateLongRef
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, TRest
>(T1 item1
, T2 item2
, T3 item3
, T4 item4
, T5 item5
, T6 item6
, T7 item7
, TRest rest
) where TRest
: ITuple
=>
930 new Tuple
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, TRest
>(item1
, item2
, item3
, item4
, item5
, item6
, item7
, rest
);