using System.Collections.Generic;
using System.Data.Entity;
using System.Linq.Expressions;
using System.Text.RegularExpressions;
public static void Main()
List<string> fruits = new List<string> { "grape", "passionfruit", "banana", "mango", "orange", "raspberry", "apple", "blueberry" };
IEnumerable<string> query = fruits.AsEnumerable();
Expression<Func<string, object>> byLength = s => s.Length;
Expression<Func<string, object>> byAlpha = s => s;
var filters = new List<Expression<Func<string, object>>> {
foreach (var filter in filters) {
query = query.OrderBy(filter.Compile());
query = (query as IOrderedEnumerable<string>).ThenBy(filter.Compile());
foreach (string fruit in query)
Console.WriteLine(fruit);