Tip a futura memoria: 

public static List<MyClass> ReorderList(List<MyClass> listToOrder, string orderByPropertyName)
{
    var p = typeof(MyClass).GetProperty(orderByPropertyName);
    return listToOrder.OrderBy(c => p.GetValue(c, null)).ToList<MyClass>();
}