Tuple.Create. , :
public static Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>>
Create<T1, T2, T3, T4, T5, T6, T7, T8>(
T1 item1,
T2 item2,
T3 item3,
T4 item4,
T5 item5,
T6 item6,
T7 item7,
T8 item8
)
, T8 Tuple<T8> - .
new:
var value = new Tuple<<int, string, double, string, int, string, double,
Tuple<int, string>>
(1, "ABC", 100.123, "XYZ", 1, "ABC", 100.123,
new Tuple<int, string>(100, "My Rest Item"));
. , , .
public static Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9>>
Create(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9)
{
return new Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9>>
(t1, t2, t3, t4, t5, t6, t7, Tuple.Create(t8, t9));
}
( , )
, , Tuple<T1 ... T7>:
public static Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>
With(this Tuple<T1, T2, T3, T4, T5, T6, T7> tuple,
TRest rest)
{
return new Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>(
tuple.Item1,
tuple.Item2,
tuple.Item3,
tuple.Item4,
tuple.Item5,
tuple.Item6,
tuple.Item7,
rest);
}
:
var value = Tuple.Create(1, "ABC", 100.123, "XYZ", 1, "ABC", 100.123)
.With(Tuple.Create(100, "My Rest Item"));
, .