Похоже, вы хотите сгруппировать по идентификатору области, затем:
var groups = from person in persons
group 1 by person.AreaID into area
select new { AreaID = area.Key, Persons = area.Count() };
Я использую «группу 1», чтобы указать, что меня действительно не волнуют данные в каждой группе - только счет и ключ.
Это неэффективно, так как для группировки необходимо буферизовать все результаты - у вас есть возможность использовать Reactive LINQ в .NET 4.0, чтобы сделать это более эффективно, или вы наверняка можете использовать Push LINQ если хочешь. Опять же, для относительно небольших наборов данных это, вероятно, не имеет значения:)