using System; public static class TupleExtensions { public static readonly Type[] GenericTupleTypes = new Type[] { typeof(Tuple), typeof(Tuple<>), typeof(Tuple<,>), typeof(Tuple<,,>), typeof(Tuple<,,,>), typeof(Tuple<,,,,>), typeof(Tuple<,,,,,>), typeof(Tuple<,,,,,,>), typeof(Tuple<,,,,,,,>) }; public static Type GetGenericTupleType(int argumentsCount) => GenericTupleTypes[argumentsCount]; public static Type CreateTupleType(Type[] signature) => GetGenericTupleType(signature.Length) .MakeGenericType(signature); }