Comment spécifier l’argument passé à `` l’utilisation d’une valeur que je prends comme paramètre ?
ex:
Mise en œuvre actuelle :
Au lieu de `` , comment puis-je prendre cela comme paramètre?
exemple
Comment spécifier l’argument passé à `` l’utilisation d’une valeur que je prends comme paramètre ?
ex:
Mise en œuvre actuelle :
Au lieu de `` , comment puis-je prendre cela comme paramètre?
exemple
Vous pouvez utiliser un peu de réflexion pour construire l’arborescence d’expression comme suit (il s’agit d’une méthode d’extension) :
est le nom de propriété que vous souhaitez trier et si vous passez true comme paramètre pour
, triera dans l’ordre décroissant ; sinon, triera dans l’ordre croissant.
Maintenant, vous devriez être en mesure de faire ou
Pour développer la réponse en @Icarus: si vous souhaitez que le type de retour de la méthode d’extension soit un IOrderedQueryable au lieu d’un IQueryable, vous pouvez simplement effectuer un cast du résultat comme suit :
private Func<T, object> GetOrderByExpression<T>(string sortColumn)
{
Func<T, object> orderByExpr = null;
if (!String.IsNullOrEmpty(sortColumn))
{
Type sponsorResultType = typeof(T);
if (sponsorResultType.GetProperties().Any(prop => prop.Name == sortColumn))
{
System.Reflection.PropertyInfo pinfo = sponsorResultType.GetProperty(sortColumn);
orderByExpr = (data => pinfo.GetValue(data, null));
}
}
return orderByExpr;
}
public List<T> OrderByDir<T>(IEnumerable<T> source, string dir, Func<T, object> OrderByColumn)
{
return dir.ToUpper() == "ASC" ? source.OrderBy(OrderByColumn).ToList() : source.OrderByDescending(OrderByColumn).ToList();``
}
// Call the code like below
var orderByExpression= GetOrderByExpression<SearchResultsType>(sort);
var data = OrderByDir<SponsorSearchResults>(resultRecords, SortDirectionString, orderByExpression);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.