Часто мне нужен набор несекретных объектов с числовыми идентификаторами. Мне нравится использовать KeyedCollection для этого, но я думаю, что есть серьезный недостаток. Если вы используете int для ключа, вы больше не можете обращаться к членам коллекции по их индексу (коллекция [index] теперь действительно коллекция [key]). Является ли это достаточно серьезной проблемой, чтобы избежать использования int в качестве ключа? Какая предпочтительная альтернатива? (возможно, int.ToString()?)
Я сделал это раньше без каких-либо серьезных проблем, но в последнее время я ударил неприятную хватку, когда сериализация XML в отношении KeyedCollection не работает, если ключ является int из-за ошибка в .NET.