Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5969051
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T20:10:33+00:00 2026-05-22T20:10:33+00:00

I have a generic Tree class which will implement ICollection< T > (and hence

  • 0

I have a generic Tree class which will implement ICollection< T > (and hence IEnumerable< T > and IEnumerable).

For this I have to implement a TreeEnumerator class.

Every call to Tree.GetEnumerator() will return a new instance of TreeEnumerator.

I have 2 questions:

  1. If there are many TreeEnumerator objects floating around and the underlying Tree changes then what happens ? how to handle that ?

  2. Is it better to do a CopyToArray all the tree elements (inside TreeEnumerator for easy array traversal) when TreeEnumerator is created or do the traversal one step at time with each MoveNext ?

I know CopyToArray is easy one time traversal but costs on space.

EDIT :

After getting to know of version mechanism:

Can you point to an example code of this versioning mechanism ? There must be standard naming and way to access , because foreach loop will need this check with each MoveNext

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T20:10:33+00:00Added an answer on May 22, 2026 at 8:10 pm

    Usually, structural changes to the underlying collection invalidate any existing iterators. This can be implemented using a “version number” in the collection, which can be checked on each iteration step.

    For example, from the docs for List<T>.GetEnumerator():

    An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and its behavior is undefined.

    (In practice, it will throw InvalidOperationException.)

    Note that the concurrent collections in .NET 4 explicitly allow the collection to be changed without invalidating the iterator. Typically the iterator will only see the original elements, as if a snapshot has been taken when GetEnumerator() was called.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a generic class that I'm trying to implement implicit type casting for.
I have a generic class that should allow any type, primitive or otherwise. The
I have a generic Repository<T> class I want to use with an ObjectDataSource. Repository<T>
I have a generic class in C# with 2 constructors: public Houses(params T[] InitialiseElements)
I have a generic list... public List<ApprovalEventDto> ApprovalEvents The ApprovalEventDto has public class ApprovalEventDto
I have a generic method with this (dummy) code (yes I'm aware IList has
I have a WCF service which exposes a Generic interface (and the service has
I have a generic BST and a dataItem class to act as treeNode's value.
I have this html code: <body> <div class=CodeRay> <div class=code><pre><span class=no> 1</span> require <span
I have a generic factory which caches an instance before return it (simplified code):

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.