On Thu, 03 Feb 2011 09:35:44 -0500, Nrgyzer <nrgy...@gmail.com> wrote:

== Auszug aus bearophile (bearophileh...@lycos.com)'s Artikel
Nrgyzer:
> Is there any chance to cast/convert this array to an indexed
array or
> is it possible to iterate over specific indices? I know that
there is
> something like next() for the foreach-statement but when the array
> contains some thousand instances and I only want iterate over (for
> example) 5 elements I think that's the wrong way.
Show a hypothetical code example of what you desire to do, please.
Bye,
bearophile

Example:

...
class Example(T : Drawable) : Drawable {

        T[hash_t] pObjectsToDraw;

        uint pFrom, pTo;

        void setLimit(from, to) {
                pFrom = from;
                pTo = to;
        }

        void remove(T objToRemove) {
                pObjectsToDraw.remove(objToRemove.toHash());
        }

        override void draw() {
                for (uint i = pFrom; i < pTo; i++) {
                        pOjectsToDraw[i].draw(); // cannot call
because pObjectsToDraw is an associative and no static or dynamic
array
                }
        }

}

First, hashes are not stored in any particular order, so I'm not sure what you expect to accomplish except "give me (pTo - pFrom) random elements from the array"

Second, you can use a foreach loop to get data out of an AA, and then break when you've retrieved enough elements.

Again, I'm not sure what the point is of starting in the middle of the array. Are you expecting something different from a hashtable?

-Steve

Reply via email to