Retrieving values from Entity Framework DbContext to render in a ListBox
You might as well just use LINQ to project the collection to SelectListItem 

return db.Physicians.Select(new SelectListItem { Value = p.Id.ToString(), Text = p.Name });




As far as lists and arrays are concerned there is actually only one main difference betwen them: arrays cannot change its size. Use what is more conveninet. If you have fixed collection of items the I'd probably use an array an in all other cases I guess I'd chose a list. 

Alternatively you can use ICollection&lt;T&gt; as a return type and since most collections implement this interface it doesn't matter what the underlying type is.