Inefficient code inside of getter?
If you want to keep the two lists (otherwise check Hackworth's answer), the best solution would be to use LINQ extensions

public IEnumerable&lt;Page&gt; AllPages 
{ 
    get 
    {
        return HeaderPages.Concat(SurveyPages);
    } 
}


This way you do not create any unnecessary collections. It forces you to use IEnumerable&lt;Page&gt; though, but in my opinion it is a good thing.