Итак, я просто тестировал CLR Profiler от microsoft, и я сделал небольшую программу, которая создала Список с 1 000 000 удвоений в нем. Я проверил кучу и выяснил, что размер List < > составляет около 124 КБ (я точно не помню, но это было вокруг). Это действительно потрясло мой мир, как это могло быть 124 КБ, если бы в нем было 1 миллион удвоений? Во всяком случае, после этого я решил проверить двойную [1000000]. И к моему удивлению (ну, на самом деле, это не то, чего я ожидал от List < >= P), размер массива - 7,6 МБ. ОГРОМНАЯ разница!
Почему они разные? Как List < > управляет своими элементами, что он (невероятно) эффективен для памяти? Я имею в виду, что это не похоже на то, что остальные 7,5 мб были где-то в другом месте, потому что размер приложения был примерно на 3 или 4 КБ больше после того, как я создал 1 миллион удвоений.