How can I keep track of multiple Elements using ElementReader?

Q: It lookslike that ElementReader reader.next() always returns the
same element Object from the memory with the corresponding element
value. If we want to build an array of element Objects, all of them
have the same value.
------
A: ElementReader discards the previous Element when a new element is
loaded. The reason for this is: efficiency and memory consumption.
There are many PDF documents that contain thousands and sometimes
hundreds of thousands of element on a single page (e.g. images drawn
pixel by pixel etc). Keeping all of these elements in memory would not
be efficient. If you need to track multiple elements in memory you can
create your own data structures and copy the required information. For
example, in case you would like to track only text elements and you
would like to keep the ID of the element (using a local element
counter variable), text string, and the associated font. The
corresponding structure may look as follows:

class TextRun {
int id;
string text; // from element.GetTextString()
pdftron.PDF.Font font; // from element.GetGState().GetFont();
}