using System;
using System.Linq;
using System.Linq.Expressions;
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8 };
var param = Expression.Parameter(typeof(int), "x");
var modexp = Expression.Modulo(param, Expression.Constant(2));
var body = Expression.Equal(modexp, Expression.Constant(0));
Expression<Func<int, bool>> cond = Expression.Lambda<Func<int, bool>>(body, param);
var query = arr.Where(cond.Compile());
foreach (int x in query) Console.Write(x + "\t");
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkxpbnEuRXhwcmVzc2lvbnM7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwoKbmFtZXNwYWNlIENvbnNvbGVBcHAxCnsKICAgIGNsYXNzIFByb2dyYW0KICAgIHsKICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICAgICAgewoJCQlpbnRbXSBhcnIgPSB7IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDggfTsKCQkJdmFyIHBhcmFtID0gRXhwcmVzc2lvbi5QYXJhbWV0ZXIodHlwZW9mKGludCksICJ4Iik7CgkJCXZhciBtb2RleHAgPSBFeHByZXNzaW9uLk1vZHVsbyhwYXJhbSwgRXhwcmVzc2lvbi5Db25zdGFudCgyKSk7CgkJCXZhciBib2R5ID0gRXhwcmVzc2lvbi5FcXVhbChtb2RleHAsIEV4cHJlc3Npb24uQ29uc3RhbnQoMCkpOwoJCQlFeHByZXNzaW9uPEZ1bmM8aW50LCBib29sPj4gY29uZCA9IEV4cHJlc3Npb24uTGFtYmRhPEZ1bmM8aW50LCBib29sPj4oYm9keSwgcGFyYW0pOwoJCQl2YXIgcXVlcnkgPSBhcnIuV2hlcmUoY29uZC5Db21waWxlKCkpOwoJCQlmb3JlYWNoIChpbnQgeCBpbiBxdWVyeSkgQ29uc29sZS5Xcml0ZSh4ICsgIlx0Iik7CiAgICAgICAgfQogICAgfQp9Cg==