System.Linq.Dynamic

http://dynamiclinq.codeplex.com/

10万回 用动态表达式 0.19s ,普通Lamba 0.02s,效率还可以

/*
  User: Peter
  Date: 2016/4/12
  Time: 14:20
 
                           
*/   
using System;
using System.Linq.Dynamic;
using System.Linq.Expressions;
using NUnit.Framework;

namespace Penseesoft.Utility.Tester.Daily
{
    public class TestInt
    {
        public int Value
        {
            get;
            set;
        }
    }
    [TestFixture]
    public class Test111
    {
        [Test]
        public void TestMethod()
        {
            
            
            Expression<Func<TestInt,bool>> e =     DynamicExpression.ParseLambda<TestInt,bool>("Value%2==0");
            Func<TestInt,bool> b = e.Compile();
            TestInt pi = new TestInt();
            for(int i = 0;i<100000;i++)
            {
                pi.Value = i;
                b(pi);
            }
        }
        
        [Test()]
        public void Test1()
        {
            Func<int,bool> b = i=>i%2==0;
            for(int i = 0;i<100000;i++)
            {
                b(i);
            }
        }
    }
}
原文地址:https://www.cnblogs.com/peteryu007/p/5382732.html