Как уже говорили другие, вы не можете перебирать хеш-таблицу так, как вам кажется. Если, с другой стороны, вы хотите получить результат, когда ключи находятся в этом диапазоне, вы можете сделать что-то вроде этого:
public IDictionary<int, T> GetRange<T>(
IDictionary<int, T> source, int min, int max)
{
// add error checking for min,max, null, etc...
int capacity = Math.Max(0, max - min);
Dictionary<int, T> target = new Dictionary<int, T>(capacity);
for (int key = min; key < max; key++)
{
if (source.ContainsKey(key))
{
target.Add(key, source[key]);
}
}
return target;
}
Обратите внимание, что я использую стандартную версию (Dictionary
) вместо старой Hashtable
, но идея будет такой же.