Как насчет этого это:
StackFrame frame = new StackFrame(1);
frame.GetMethod().Name; //Gets the current method name
MethodBase method = frame.GetMethod();
method.DeclaringType.Name //Gets the current class name
Короткий ответ - да, сборка мусора очистит все узлы связанного списка, при условии, что ничто внешнее не содержит ссылки на них.
Самый простой способ проверить - добавить финализатор в объект узла связанного списка, который выводит некоторый журнал. Обратите внимание, что вы не можете быть уверены в том, что сборщик мусора запускается (без его принудительного запуска через GC.Collect ()), поэтому вы не увидите вызываемого финализатора, как только вы вызовете метод Clear ().
«эффекта домино» не должно быть; не имеет значения, удерживаются ли ссылки на объект, или ссылки могут быть прослежены до стека или статического объекта. Таким образом, если несколько объектов ссылаются друг на друга, но ничто не относится к ним, тогда все они будут собраны мусором одновременно.
Я визуализирую эффект домино
GC работает не так.
GC сначала помечает все как «мертвые», затем, начиная с корневых объектов, он просматривает все объекты, на которые они ссылаются, помечая каждый как «живой».
Поскольку на ваш список больше не ссылаются какие-либо корневые объекты (или дочерние объекты), он будет слева помечено как «мертвые».
Второй проход затем освобождает «мертвые» объекты.
Я сомневаюсь, что вы можете предположить в финализаторе, что какие-либо объекты с любой стороны в списке не были собраны первыми, http://msdn.microsoft.com/en-us/magazine/bb985010.aspx