У меня есть структура данных следующим образом:
public class BranchLevel_1
{
public string Name { get; set; }
public ObservableCollection<BranchLevel_2> Children { get; set; }
public BranchLevel_1(string name, List<BranchLevel_2> children)
{
this.Name = name;
this.Children = new ObservableCollection<BranchLevel_2>(children);
}
}
public class BranchLevel_2
{
public ObservableCollection<BranchLevel_3> Contents { get; set; }
public BranchLevel_2(List<string> contents)
{
this.Contents = new ObservableCollection<BranchLevel_3>();
for (int i = 0; i < contents.Count; i++)
{
this.Contents.Add(new BranchLevel_3(contents[i]));
}
}
}
public class BranchLevel_3
{
public string Content { get; set; }
public BranchLevel_3(string text)
{
this.Content = text;
}
}
Сортировка данных на первом уровне проста, и я могу легко получить по:
Level1_Data.OrderBy(item => item.Name).ToList()
Однако, я застрялс сортировкой на втором уровне.Класс BranchLevel_2 - это просто контейнер для элементов, хранящихся в классах BranchLevel_3.Поэтому я хотел бы отсортировать Level2 с данными, хранящимися в BranchLevel_2.Contents 1 .Content value.Этот синтаксис для меня кажется правильным, и я не могу найти проблему ...
Level1_Data.Select(item_Level1 => item_Level1.Children.OrderBy(item_Level2 => item_Level2.Contents[1].Content)).ToList();
Любые подсказки?
Вот результат (обозначенный желтым цветом должен быть отсортирован в алфавитном порядке)