protected internal object BaseGetKey(int index) {
int VirtualIndex = 0;
Entry entry = (Entry)null;
if (index < 0) {
throw new ConfigurationErrorsException(SR.GetString(SR.IndexOutOfRange, index));
}
foreach (Entry entryfound in _items) {
if (VirtualIndex == index && (entryfound._entryType != EntryType.Removed)) {
entry = entryfound;
break;
}
if (entryfound._entryType != EntryType.Removed) {
VirtualIndex++;
}
}
// Entry entry = (Entry)_items[index];
if (entry != null) {
object key = entry.GetKey(this);
return key;
}
else {
throw new ConfigurationErrorsException(SR.GetString(SR.IndexOutOfRange, index));
}
}