Если список большой (80 килобайт или более), он будет сохранен в куче больших объектов .Официальное руководство для LOH состоит в том, чтобы максимально использовать объекты там, чтобы уменьшить фрагментацию кучи.LOH не сжимается, как обычная куча.
Для небольших списков я обнаружил, что в целом часто быстрее создать новый, чем вызывать Clear
.Это не всегда истина, поэтому вам, вероятно, лучше всего протестировать его обоими способами в своих приложениях.
Если вы вызываете Clear
, он просто устанавливает все элементы вlist к их значениям по умолчанию и устанавливает Count
в 0. Это не меняет емкость списка.Таким образом, вызов Clear
не изменит объем памяти, выделенной для коллекции.Если вы хотите очистить список и уменьшить его размер, позвоните по номеру Clear
, а затем TrimExcess
.
Одна проблема, с которой вы столкнетесь, если не будете осторожны, - это алиасинг.Если у вас есть несколько объектов, которые ссылаются на один и тот же список, создание нового списка не удалит эти другие ссылки.Итак, вы получите два списка.Просто о чем подумать.
В общем, я не думаю, что есть какая-то "лучшая практика" для этого.Я обнаружил, что иногда полезно использовать Clear
, а иногда лучше выделить новый список.