When looping through a list of items, sometimes I've run into cases where objects are out of scope, especially when using the Page Object pattern (use it - it is great!). So I tend to use looping an explicitly declared count rather than referencing the list to loop through. Added bonus: Storing count in a variable and using that variable is quicker than referencing the browser object each time; makes a difference if you have a large number of items to loop through.
Some rough unfinished code - basically what alonp said fleshed out a bit more:
int numberOfItems = browser.SelectList(Find.ById("ctl00$Header1$ddlPropertyList")).count;
for(int i = 0; i < numberOfItems; i++)
{
//this is one the "search" page
browser.SelectList(Find.ById("ctl00$Header1$ddlPropertyList")).Options[i].Select;
browser.yourGoAction(); <- assumes navigation isn't automatic when an item is selected. EG: button.Click() or something.
//this is on the "results" page.
do stuff
//go back to the "search" page.
browser.Back();
}