浅谈c#表达式树Expression简单类型比较demo
实例如下:
usingSystem;
usingSystem.Linq.Expressions;
classDynamicPredicate
{
publicstaticExpression<Func<T,T,bool>>Generate<T>(stringop)
{
ParameterExpressionx=Expression.Parameter(typeof(T),"x");
ParameterExpressiony=Expression.Parameter(typeof(T),"y");
returnExpression.Lambda<Func<T,T,bool>>
(
(op.Equals(">"))?Expression.GreaterThan(x,y):
(op.Equals("<"))?Expression.LessThan(x,y):
(op.Equals(">="))?Expression.GreaterThanOrEqual(x,y):
(op.Equals("<="))?Expression.LessThanOrEqual(x,y):
(op.Equals("!="))?Expression.NotEqual(x,y):
Expression.Equal(x,y),
x,
y
);
}
}
staticvoidMain()
{
stringop=">=";
varintegerPredicate=DynamicPredicate.Generate<int>(op).Compile();
varfloatPredicate=DynamicPredicate.Generate<float>(op).Compile();
intiA=12,iB=4;
Console.WriteLine("{0}{1}{2}:{3}",
iA,op,iB,integerPredicate(iA,iB));
floatfA=867.0f,fB=867.0f;
Console.WriteLine("{0}{1}{2}:{3}",
fA,op,fB,floatPredicate(fA,fB));
Console.WriteLine("{0}{1}{2}:{3}",
fA,">",fB,DynamicPredicate.Generate<float>(">").Compile()(fA,fB));
Console.ReadLine();
}
以上这篇浅谈c#表达式树Expression简单类型比较demo就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。