У меня есть запрос linq, который возвращает результаты, отсортированные по первой букве. Есть ли способ вернуть первое письмо перед группой, заказанной по этому письму? Например;
**A**
Acountants
Apothecary
**B**
Basketball
Biscuits
и так далее. Я пытался сгруппировать свои результаты так:
var companyquery = (from c in db.Categories
group c by c.Name.Substring(0, 1)
into cgroup
select new
{
FirstLetter = cgroup.Key,
Names = cgroup
}).OrderBy(letter => letter.FirstLetter);
return View(companyquery);
но получил ошибку:
"Элемент модели, передаваемый в словарь, имеет тип 'System.Data.Entity.Infrastructure.DbQuery 1[<>f__AnonymousType3
1 [System.String]]', но для этого словаря требуется элемент модели типа 'System.Collections. Generic.IEnumerable`1 [NewAtAClick.Models.Category] ''
Так что теперь я использую orderby вместо группы _ в _. Вот мой запрос;
var companyquery = (from c in db.Categories
orderby c.Name.Substring(0, 1)
select c);
Возвращает их в алфавитном порядке. Я пытался сказать
letter1 = companyquery.ToString().SubString(0,1)
тогда
return view(letter1 + companyquery.ToList());
Но ничего.
Заранее спасибо!