Лично у меня был бы массив определений универсального типа:
Type[] tupleTypes = {
typeof(Tuple<>),
typeof(Tuple<,>),
typeof(Tuple<,,>),
typeof(Tuple<,,,>),
typeof(Tuple<,,,,>),
typeof(Tuple<,,,,,>),
typeof(Tuple<,,,,,,>),
typeof(Tuple<,,,,,,,>),
};
Вы могли бы сделать это в коде, но это было бы немного больно ...вероятно что-то вроде:
Type[] tupleTypes = Enumerable.Range(1, 8)
.Select(x => Type.GetType("System.Tuple`" + x)
.ToArray();
Или избегая массива:
Type generic = Type.GetType("System.Tuple`" + keys.Length);
Type specific = generic.MakeGenericType(keys);