Прежде всего вы должны использовать HashSet<T>
, если вы используете .net 3.5 или новее, и Dictionary<T,bool>
, если вы используете .net 2. Общие коллекции предлагают лучшие проверки времени компиляции, меньше приведения и меньше бокса.
Переполнение int, скорее всего, происходит перед вставкой в Hashtable
в вашем текущем коде.Итак, вы заметили, что ошибка, скорее всего, не связана с Hashtable
, но это ошибка в вашем арифметическом коде.Вам, вероятно, нужно привести что-то к long
.Но если вы не отправите соответствующий код, я не могу сказать вам, где именно происходит переполнение.