Кроме того, если Вы пишете плагин IDE (где то, что Вы пытаетесь сделать, относительно распространено), тогда IDE обычно предлагает Вам более эффективные способы получить доступ к иерархии классов текущего состояния пользовательского кода.
List
uses a backing array to hold items:
It's generally fine to use lists fairly extensively. If you know the final size when you start populating a list, it's a good idea to use the constructor which lets you specify the capacity, to avoid resizing. Beyond that: if you're concerned, break out the profiler...
По сравнению с чем?
List
, то это, по сути, оболочка для массива; так быстро читать / писать по индексу, относительно быстро добавлять (так как это позволяет дополнительное пространство в конце, удваивая размер, когда необходимо) и удалять с конца, но дороже выполнять другие операции (вставка / delete, кроме конца) Dictionary <,>
и т. д. предлагают лучший доступ по ключу Список не t изначально медленный; особенно если вы знаете, что вам всегда нужно просматривать все данные или можете получить к ним доступ по индексу. Но для больших списков может быть лучше (и удобнее) искать по ключу. В .NET существуют различные реализации словарей, каждая с разной стоимостью в зависимости от размера / производительности.