I found this presentation that gives a nice clean example of how to use the Sharepoint 2007 Audience functionality in code. So here is a quick model for creating a dropdown that is filtered based on the audience(s) set for each list item in an SPList.
private void CreateAudienceFilteredSelect(SPListItemCollection listItems)
{
// define this object at the class level so that it can access on the postback
newDropDown = new DropDownList();
AudienceLoader audienceLoader = AudienceLoader.GetAudienceLoader();
foreach (SPListItem listItem in listItems)
{
if (listItem ["Target Audiences"] != null)
{
string audienceValues = listItem ["Target Audiences"] .ToString();
if (AudienceManager.IsCurrentUserInAudienceOf(audienceLoader, audienceValues, false))
{
newDropDown.Items.Add(new ListItem(listItem["Title"].ToString(), listItem ["ID"].ToString()));
}
}
}
}