Я пытаюсь написать общий метод расширения сортировки для List на основе имени строкового столбца и linq.
У меня здесь большая часть этого метода, но он пока не работает. Логика взята с этого сайта .
public static List Sort(this List list, string sortColumn, string sortOrder)
{
if (string.IsNullOrWhiteSpace(sortColumn))
return list;
int order = sortOrder == "desc" ? -1 : 1;
var param = Expression.Parameter(typeof(T), "x");
var sortExpression = Expression.Lambda>(Expression.Property(param, sortColumn), param);
list = list.AsQueryable().OrderBy(sortExpression).ToList();
return list;
}
Проходя через этот код, я вижу, что список отсортирован правильно, но когда он возвращается, он не влияет на список, который я передал. Я предполагаю, что AsQueryable или OrderBy создает новый объект в памяти, и я больше не указываю на ту же ссылку. Есть ли у кого-нибудь советы о том, как заставить эту работу работать должным образом или, кроме того, другое решение? Спасибо!