Usually my methods are as the following:
public List Method1(int input)
{
var output = new List();
//add some items to output
Return the interface that you need in the code calling this method.
If you need to do list actions on the result, return IList
.
If you just need to enumerate the results, return IEnumerable
.
Those are the ones I use most, actually. I never return arrays from public interfaces unless there's a very good reason for it.