Why cant you just make a Dictionary?
public class StatusHelper
{
private Dictionary<Status, Image> _map;
public StatusHelper()
{
_map = new Dictionary<Status, Image>()
{
{Status.New, new Image()},
{Status.Dropped, new Image()},
{Status.Approved, new Image()},
};
}
public Image GetImageForStatus(Status status)
{
return _map[status];
}
}
Why do it this way? Well because you can inject your mapping with IoC (example here)
So, this becomes;
public StatusHelper(Dictionary<Status, Image> injectedMap)
{
_map = injectedMap;
}
and somewhere in your app you set up a Bind (not tested, only an example)
Bind<Dictionary<Status, Image>>()
.ToConstant(new Dictionary<Status, Image>()
{
{Status.New, new Image()},
{Status.Dropped, new Image()},
{Status.Approved, new Image()},
})
.WhenInjectedInto<StatusHelper>();
Now you're helper is oblivious to any change you make to Status or its images