Вы, кажется, пришли из фона C++.
A читать дальше .NET's Garbage Collection должно очистить многое для вас.
В вашем случае вам не нужно «уничтожать» все дочерние списки. Фактически, вы не можете даже уничтожить или уничтожить общий объект List самостоятельно в обычном способе .NET с хорошей практикой. Если вы больше не хотите его использовать, просто удалите все ссылки на него. И фактическое разрушение объекта будет выполняться сборщиком мусора (иначе GC), когда он сочтет это подходящим.
GC также очень умный, он будет обнаруживать круглые ссылки и a-> b-> c-> d деревья объектов, и большинство вещей, которые вы могли бы поднять, и правильно очистить весь объект. Поэтому вам не нужно создавать эту процедуру рекурсивной очистки.
Но обратите внимание, что поведение GC не определено, т. Е. Вы не будете знать, когда произойдет фактическая «очистка», поэтому, если ваш список содержит некоторые важные ресурсы, которые должны быть немедленно освобождены, т. Е. Дескрипторы файлов, подключения к базе данных, тогда вы должен явно «Dispose» из него, как рекомендовал @lassevk.
делать это только в том случае, если вы уверены, что нет других ссылок на элементы в списке, в противном случае другой код может попытаться использовать объекты – 2008-11-10 18:23:33