How come a count of a range becomes 0 before a foreach?
Steven Schveighoffer
schveiguy at gmail.com
Mon Apr 10 01:01:59 UTC 2023
On 4/9/23 9:16 AM, Ali Çehreli wrote:
> On 4/8/23 21:38, ikelaiah wrote:
>
> > I will modify the code to construct it twice.
>
> Multiple iterations of dirEntries can produce different results, which
> may or may not be what your program will be happy with.
>
> Sticking an .array at the end will iterate a single time and maintain
> the list forever because .array returns an array. :)
>
> auto entries = dirEntries(/* ... */).array;
I'd be cautious of that. I don't know what the underlying code uses, it
may reuse buffers for e.g. filenames to avoid allocation.
If you are confident the directory contents won't change in that
split-second, then I think iterating twice is fine.
-Steve
More information about the Digitalmars-d-learn
mailing list