Question: I'd be interested in some before-and-after c# examples, some non-idiomatic vs idiomatic examples. Non-c# examples would be fine as well if they get the idea across. Thanks.

Answer: 
Idiomatic means following the conventions of the language. You want to find the easiest and most common ways of accomplishing a task rather than porting your knowledge from a different language.

non-idiomatic python using a loop with append:

```
mylist = [1, 2, 3, 4]
newlist = []
for i in mylist:
    newlist.append(i * 2)

```

idiomatic python using a list comprehension:

```
mylist = [1, 2, 3, 4]
newlist = [(i * 2) for i in mylist] 

```
In PHP I sometimes encounter code like:

```
foreach ($array as $value) {
    $trimmed[] = trim($value);
}
return $trimmed;

```

Which idiomatically can be implemented with:

```
return array_map('trim', $array);

```