using System.Collections.Generic;
using System.Linq.Expressions;
public static void Main()
string sortColumn = "Date";
string sortColumnDir = "ASC";
List<mini> result = new List<mini>
var parameter = Expression.Parameter(typeof(mini), "c");
var member = Expression.PropertyOrField(parameter, sortColumn);
var cast = Expression.Convert(member, typeof(IComparable));
var lambda = Expression.Lambda<Func<mini, IComparable>>(cast, parameter);
var func = lambda.Compile();
var sortedResult = sortColumnDir == "ASC"
: result.OrderByDescending(func);
foreach (var mini in sortedResult)
Console.WriteLine("{0}, {1}", mini.SN, mini.Date);