Невозможно отсортировать подэлементы GroupBy [дубликат]C#

Место общения программистов C#
Anonymous
Невозможно отсортировать подэлементы GroupBy [дубликат]

Сообщение Anonymous »

У меня есть функция, показанная ниже. Он создает список SelectListItem с треками на каждом объекте. Кроме того, я группирую треки по объектам.
Все работает, за исключением того, что подпункты (сами треки) не сортируются.
Первое предложение OrderBy() сортирует данные по названию объекта. Это работает должным образом.
Предложение thenBy() выполняет сортировку по имени дорожки. Моя цель состоит в том, чтобы каждый трек на объекте также был отсортирован. Насколько я понимаю, GroupBy() не меняет порядок ввода. Однако эти треки вообще не отображаются отсортированными.

Код: Выделить всё

private async Task GetTrackOptionsAsync()
{
var userContext = await UserContextService.GetUserContextAsync();
var facilities = DbContext.Tracks
.Where(t => t.Facility.CompanyId == userContext.CompanyId)
.OrderBy(t => t.Facility.Name)
.ThenBy(t => t.Name)
.Select(t => new { t.Id, t.Name, t.FacilityId, FacilityName = t.Facility.Name })
.GroupBy(t => new { t.FacilityId, t.FacilityName })
.AsAsyncEnumerable();

List options = [];
await foreach (var facility in facilities)
{
SelectListGroup group = new() { Name = facility.Key.FacilityName };
foreach (var track in facility)
options.Add(new(track.Name, track.Id.ToString()) { Group = group });
}
return options;
}
Может ли кто-нибудь увидеть, чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/786 ... y-subitems

Вернуться в «C#»