Как упорядочить список объектов по неизвестному количеству значений? При использовании LINQ это будет примерно так:
var myNewCollection = myCollection.OrderBy(c => c.Id).ThenBy(c => c.Name).ThenBy(c => c.Years).ToList();
И у меня есть список из 11 свойств, по которым пользователь может сортировать. Когда я не знаю, сколько полей выберет использование, как я могу построить свое выражение в этом случае?
Добавить пакет nuget... System.Linq.Dynamic.Core
Это сайт с документацией... https://dynamic-linq.net/
Вам нужно построить строку, которая выглядит примерно так... Id ASC, Name DESC, Years ASC
... в соответствии с документацией или прямой сортировкой без направления, например. Id, Name, Years
. Затем просто вызовите метод OrderBy (https://dynamic-linq.net/basic-simple-query#ordering-results)...
var sortBy = "Id, Name, Years";
var result = DynamicQueryableExtensions.OrderBy(data.AsQueryable(), sortBy).ToList();
При необходимости вам нужно будет проделать необычную работу, чтобы сделать выбор, который пользователь видит более полезным, чем имя ваших полей.
Проверь это. learn.microsoft.com/en-us/dotnet/csharp/programming-guide/…