Вы, вероятно, должны следовать совету Джона Скита или Ника Берарди и просто сформулировать лучший запрос, но если у вас действительно есть веская причина для этого, вот ответ на ваш настоящий вопрос:
Чтобы получить доступ к переменной ids после выхода из области действия цикла, вы должны объявить ее снаружи. Но вы не можете использовать ключевое слово var , если не назначите переменную при объявлении. Таким образом, вы должны объявить тип явно:
public IEnumerable <Country> ListPopulation()
{
IQueryable<Country> ids;
foreach(var continent in Continents)
{
var ids = context.continentTable
.Where(y=>y.Name == continent.Name)
.Select(x=>x.countryId);
}
return GetPopulation(ids);
}