То есть, я хотел бы иметь кортеж значений.
Вариант использования на мой взгляд:
Dictionary<Pair<string, int>, object>
или
Dictionary<Triple<string, int, int>, object>
Существуют ли встроенные типы, такие как Pair или Triple? Или какой лучший способ его реализации?
Обновление. В ответах описаны некоторые реализации кортежей общего назначения, но для кортежей, используемых в качестве ключей в словарях, вы должны дополнительно проверить правильность вычисления хэш-кода. Дополнительная информация об этом в другом question.
Обновление 2 Я думаю, также стоит напомнить, что, когда вы используете какое-то значение в качестве словаря в словаре, оно должно быть неизменным.