Пытается что-то с Linq/Lambda, но понятия не имеет, где искать.Linq/лямбда-выражения
Я работаю над простой сортировкой в ASP.net GridView. Вот некоторые примеры кода:
IQueryable<User> query = (from c in users select c).AsQueryable<User>();
if (isAscending)
{
switch (e.SortExpression)
{
case "Name":
query.OrderBy(c => c.Name);
break;
default:
break;
}
}
else
{
switch (e.SortExpression)
{
case "Name":
query.OrderByDescending(c => c.Name);
break;
default:
break;
}
}
grid.DataSource = query.ToList();
grid.DataBind();
Я, однако, неудовлетворенный с кодом, как он очень чувствителен к ошибкам и требует много дублированного кода. Я надеюсь решить это, используя выражения Лямбда, но я понятия не имею, как это сделать. Вот что я хотел бы посетить:
IQueryable<User> query = (from c in users select c).AsQueryable<User>();
var param = null;
switch (e.SortExpression)
{
case "Name":
param = (c => c.Name);
break;
default:
break;
}
if (isAscending)
{
query.OrderBy(param);
}
else
{
query.OrderByDescending(param);
}
grid.DataSource = query.ToList();
grid.DataBind();
Может ли кто-нибудь мне помочь? Спасибо!
Как всегда, gret ответ, спасибо! – StevenMcD
Спасибо за ответ. Код выше был сделан из кусков реального кода, поэтому я мог бы совершить некоторые ошибки. В любом случае, это было больше. Что касается вашего ответа: спасибо! Это действительно очень приятное решение. Я принимаю это так, как я хотел, это невозможно? – 2009-10-07 10:38:20