using System.Collections.Generic;
public static void Main()
var list = new List<int>() { 1, 2, 3, 4, 5 };
var list2 = list.WhereDynamic(x => "x > 2");
var list3 = list.WhereDynamic(x => "x > X", new { X = 2 });
foreach (var value in list)
Console.WriteLine(value);
foreach (var value in list2)
Console.WriteLine(value);
foreach (var value in list3)
Console.WriteLine(value);