Я думаю, что структура данных, которую вы принимаете, будет во многом зависеть от того, как вы собираетесь использовать статические значения.
Если вы собираетесь проводить много сравнений, я бы предложил перечисление с пользовательскими атрибутами(как описано в вашей ссылке, но, возможно, далее), чтобы предоставить дополнительные метаданные.Однако, если структура, содержащая статические значения, будет работать больше как ряд вариантов (например, класс Encoding в System.Text), тогда статический класс с полями, помеченными как readonly , будет лучшим вариантом.