Here is a Expression Tree sample to build Dynamic queries to query List<> with Sorting in C#
C# Code:
C# Code:
static void Main(string[] args) { IQueryable<Country> queryableData = GetCountries().AsQueryable(); ParameterExpression pe = Expression.Parameter(typeof(Country)); MemberExpression me = Expression.PropertyOrField(pe, "Id"); MethodCallExpression orderByCallExpression = Expression.Call( typeof(Queryable), "OrderByDescending", new Type[] { queryableData.ElementType, typeof(Int32) }, queryableData.Expression, Expression.Lambda<Func<Country, Int32>>(me, pe)); IQueryable<Country> results = queryableData.Provider.CreateQuery<Country>(orderByCallExpression); foreach (var item in results) { Console.Write(item.Id); Console.Write(" : "); Console.WriteLine(item.Name); } Console.ReadLine(); }
public static List<Country> GetCountries() { // To get the country list in c# check my previous post Click Here // i have added a Id property to the above link sample to make some condition work in this post }
class Country { public Int32 Id { get; set; } public string Code { get; set; } public string Name { get; set; } }Reference: MSDN
No comments:
Post a Comment