[Newbies] collection enumeration

Bert Freudenberg bert at impara.de
Wed Aug 23 19:23:07 UTC 2006



Am 23.08.2006 um 21:15 schrieb cdrick:

> Hi all -
>
> not an important question here, more a discussion. I was wondering
> which method is the more appropriate (nice and/or efficient) to
> enumerate all the elements of a collection and the index of each
> elements...
>
>
> (a) ---- à la C
>
> (1 to: collection size) do: [:index |
> 						html render: 'Victime ', index printString.
>                                                html render:
> collection at: index]
>
> (b) --- indexOf
>
> collection do: [:victim |
> 						html render: 'Victime ', (collection indexOf: victim)  
> printString.
>                                                html render: victim]
>
> (c) ---- keysAndValuesDo:
>
> collection keysAndValuesDo: [:index :victim |
> 						html render: index printString.
>                                                html render: member]
>
> (d) ---- using a local var
>
> | index |
> index := 0.
> collection do: [:victim | index := index + 1.
> 						html render: 'Victime ', index printString.
>                                                html render: victim]
>
> What solution would you suggest ?
> I think we forget (a) and (d)
> I like (c) but maybe (b) is more readable ?
>
> Maybe there is another way ?

(c), though I like #withIndexDo: better since it mimics the #with:do:  
pattern.

- Bert -



More information about the Beginners mailing list