Learning to use ranges instead of arrays

John Colvin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jul 20 09:11:01 PDT 2014


On Sunday, 20 July 2014 at 16:02:05 UTC, Bob Tolbert wrote:
> I find myself writing this code too much and i'm curious what D
> idiom I am missing.
>
> given a list of files (or any strings) and then maybe I want to
> sort them and maybe I don't.
>
>      string [] fileList;
>
>      ... fill list
>
>      if (sort) {
>          string [] tempList;
>          foreach(filename; sort(fileList)) {
>              tempList ~= filename;
>          }
>          fileList = tempList;
>      }
>
>      foreach(filename, fileList) {
>          ... do something;
>      }
>
> but I know this is ugly code, so I'm curious as to how to make 
> it better. I suspect it is something very simple, about 
> switching everything I do to 'ranges', but I can't see it yet.
>
> Thanks for any input,
> Bob

Even without ranges, you can do this:

       string [] fileList;

       ... fill list

       if (sort)
           sort(fileList);

       foreach(filename, fileList) {
           ... do something;
       }

because sort works in-place.


More information about the Digitalmars-d-learn mailing list