Checking for Null before adding into List Is there any way to refactor this?

public IEnumerable&lt;Option&gt; Options
{
    get
    {
        {
            List&lt;Option&gt; ListOption = new List&lt;Option&gt;();

            if (!String.IsNullOrEmpty(Option1)) 
            {
                ListOption.Add(new Option() {Name=Option1 });
            }
            if (!String.IsNullOrEmpty(Option2))
            {
                ListOption.Add(new Option() { Name = Option2 });
            }
            if (!String.IsNullOrEmpty(Option3))
            {
                ListOption.Add(new Option() { Name = Option3 });
            }
            if (!String.IsNullOrEmpty(Option4))
            {
                ListOption.Add(new Option() { Name = Option4 });
            } 

            return ListOption;
        }
    }
}

public class Option
{
    public string Name { get; set; }
}
This is a bit neater:

List&lt;Option&gt; ListOption = new List&lt;Option&gt; { };
Action&lt;string&gt; add = x =&gt; { if (!String.IsNullOrEmpty(x)) ListOption.Add(new Option { Name = x }); }
add(Option1);
add(Option2);
add(Option3);
add(Option4);
return ListOption;


This is perhaps even better:

return (new string[] {Option1, Option2, Option3, Option4})
       .Where(x =&gt; !String.IsNullOrEmpty(x))
       .Select(x =&gt; new Option { Name = x })
       .ToList();