Question: Suppose I have a method that returns an array or list or some other collection. If something goes wrong inside or when there is simply no data to return, what is better - to return null or to return array (list, etc.) that has length (count) equal to 0?

In fact is it important, or it is just a matter of developer's preferences?

Answer: 
It's better to return an empty collection. This way when someone calls the function like so:

```
foreach(var i in items)
{

}

```

it doesn't throw a null reference exception on them.

Technically, you could argue empty vs. `null` means, but in reality a lot of people (myself included at times) forget to be defensive and don't check to see if the object is null before using it. It's playing into what other people assume is going to happen, which means less bugs and less angry users.
If something goes wrong then you shouldn't be returning anything, rather throwing an exception.

**You need to agree a consistent approach for the project as to the meaning of NULL and {} and stick to it.** Either you are going to use NULL or not, if you are everyone needs to know to check.

I like to think of NULL - not tried to or see if there is anything, there might be some but who knows.

Empty collection - tried to populate and as far as the system is concerned there are no items, which is quite a strong statement.

e.g. Wallet.Notes collection.

* NULL - I haven't opened my wallet, so I don't know if I have any notes in it.
* List={} - I've checked and I definitely don't have any notes cos I spent it all on beer.