Disposing of nested collection in C# .NET
I have a set of objects, each of which has a collection of objects in it (those are obvious from the code below).  I want to create a 'dispose' method that goes through, getting rid of all the attachments and then the sections, so I can delete the related files.  The objects are used in various spots so the 'using' method isn't appropriate as far as I can see.  The below fails (understandably) because the collection has been modified.

                // Find files and get names.
            foreach (DocumentSection s in this.sections)
            {
                foreach (EmailAttachment a in s.SectionAttachments)
                {
                    // Get file location, then clear attachment to release file handle.
                    filesToDelete.Add(a.TempAttachmentFileLoc);
                    s.SectionAttachments.Remove(a);
                    a = null;
                }
                this.sections.Remove(s);
                s = null;
            }

The reason I'm doing all this is because I want to delete the temp file after use (TempAttachmentFileLoc) but it's in use and can't presently be deleted. 

Thanks
Disposing of nested collection in C# .NET
===

I have a set of objects, each of which has a collection of objects in it (those are obvious from the code below).  I want to create a 'dispose' method that goes through, getting rid of all the attachments and then the sections, so I can delete the related files.  The objects are used in various spots so the 'using' method isn't appropriate as far as I can see.  The below fails (understandably) because the collection has been modified.

                // Find files and get names.
            foreach (DocumentSection s in this.sections)
            {
                foreach (EmailAttachment a in s.SectionAttachments)
                {
                    // Get file location, then clear attachment to release file handle.
                    filesToDelete.Add(a.TempAttachmentFileLoc);
                    s.SectionAttachments.Remove(a);
                    a = null;
                }
                this.sections.Remove(s);
                s = null;
            }

The reason I'm doing all this is because I want to delete the temp file after use (TempAttachmentFileLoc) but it's in use and can't presently be deleted. 

Thanks