Есть БД с данными, таблица, в которой 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? Заранее спасибо.
Укажите с помощью 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).
Так что смотрите, может и вам будет этот способ удобней...
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости