Essayer quelque chose avec Linq/Lambda, mais ne savez pas où chercher.Expressions linq/lambda
Je travaille sur un tri simple dans un ASP.net GridView. Voici quelques exemples de code:
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();
Je suis cependant pas satisfait du code tel qu'il est très sensible aux erreurs et nécessite beaucoup de code dupliqués. J'espère résoudre cela en utilisant des expressions lambda à la place, mais je n'ai aucune idée de comment. Voici ce que je voudrais aller à:
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();
Quelqu'un peut-il s'il vous plaît aidez-moi? Merci!
Comme toujours, une réponse gret, merci! – StevenMcD
Merci pour la réponse. Le code ci-dessus a été fait à partir de morceaux de code réel, donc j'ai peut-être fait quelques erreurs. C'était plus pour l'image quand même. En ce qui concerne votre réponse: merci! C'est en effet une très bonne solution. Je le prends comme je le voulais n'est pas possible? –