Q:

Сортировка параметров группировки в Linq

Есть БД с данными, таблица, в которой 2 столбца - UserId, CandidatId.  Задача - получить количество User-ов с Number 1, 2, n и вывести в формате Json.  Уже имею решение
var choises = from voter in voters
                      group voter by voter. CandidatId into g
                      select new { Id = g.Key, count = g.Count() };

но проблема в том, что Number-s сортируются в порядке увеличения, а именно
[{"Id":4,"count":35},{"Id":1,"count":36},{"Id":5,"count":40},{"Id":3,"count":43},{"Id":2,"count":50}]

Вопрос: Как произвести сортировку Id, что бы результат был критерий сортировки был не count, а Id? 
Заранее спасибо. 

A:

Укажите с помощью orderby то, что вам необходимо. 
Например:
var choises = from voter in voters
    orderby voter. CandidatId
    group voter by voter. CandidatId into g
    select new { Id = g.Key, count = g.Count() };

Либо сортируйте уже группу:
var choises = from voter in voters
    group voter by voter. CandidatId into g
    orderby g.Key
    select new { Id = g.Key, count = g.Count() };

Здесь уже смотрите сами что именно вы хотите и как именно хотите этого достичь. 

Вообще лично я не люблю такой вид LINQ, ведь проще и понятней написать что то вроде:
var choises = voters. GroupBy(x => x.CandidatId)
    .Select(x => new {Id = x.Key, count = x.Count()});

Ну и сортировка также просто добавляется, к примеру, в самый конец .OrderBy(x => x.Id). 
Так что смотрите, может и вам будет этот способ удобней...

