See the MSDN docs for List, namely the Remove commands. If an item in the List is no longer referenced, then the garbage collector will take care of it eventually. The List itself won’t free memory, since List is actually backed by an array, which (unless you manually specify otherwise) starts with enough space allocated for 4 elements in the List, and doubles that to 8 if you add enough items, then 16, 32, etc., but it doesn’t reduce the size of the array if you remove items. If you have a huge List and you remove a lot of items, and want to get back some memory, see the TrimExcess command. Note that classes are by reference anyway, so the List is only storing references to the actual class instances, not the instances themselves.