Language: C#
GenericSorter<T>
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; public class GenericSorter<T> { public IEnumerable<T> Sort(IEnumerable<T> source, string sortBy, string sortDirection) { var param = Expression.Parameter(typeof(T), "item"); var sortExpression = Expression.Lambda<Func<T, object>> (Expression.Convert(Expression.Property(param, sortBy), typeof(object)), param); switch (sortDirection.ToLower()) { case "asc": return source.AsQueryable<T>().OrderBy<T, object>(sortExpression); default: return source.AsQueryable<T>().OrderByDescending<T, object>(sortExpression); } } }
Tags:
Description:
Usage:
GenericSorter gs = new GenericSorter();
SurveyStateFormatItems = gs.Sort(SurveyStateFormatItems.AsQueryable, sortExpression, sortDirection).ToArray();
GenericSorter gs = new GenericSorter();
SurveyStateFormatItems = gs.Sort(SurveyStateFormatItems.AsQueryable, sortExpression, sortDirection).ToArray();
Report Abuse
Subscribe
Discuss
What's new
What is it
New Snippet
Recent Snippets
My Snippets
Web Code
Search

