Being spoiled by the concise nature of Perl programs, old fashioned for loops bother me. I know that the traditional 3 statement for-loop is universally understood form, but I can do without the C heritage.

Consider Perl:

for my $var (@array) { push @result, $var }

Versus the C-derivative:

for (int i = 1; i <= array.count; ++i) { result[i] = array[i]; }

The former is simply easier to explain. Of course, in Perl, one would probably end up with:

my @result = map { compute($_) } (1..10);

C# offers something similar:

var result = Enumerable.Range(1, 10).Select(x => Compute(x));

Even though the Range method is a bit unwieldy, this is occassionally a pleasant alternative. And a way of get rid of the last for/foreach loops when having fun with LINQ.