如何检查两个表达式>相同[重复]

如何检查两个表达式>相同[重复],第1张

如何检查两个表达式>相同[重复]

您可以看一下Linq to db4o内部使用的类型expressionEqualityComparer。它实现了IEqualityComparer
接口,因此可用于通用集合以及独立使用。

它使用expressionComparison类型比较两个expression是否相等,并使用HashCodeCalculation来根据expression计算哈希码。

所有这些都涉及访问表达式树,因此,如果您反复进行 *** 作,可能会花费很多,但也很方便。

该代码在GPL或dOCL下可用

例如,这是您的测试:

using System;using System.Linq.expressions;using Db4objects.Db4o.Linq.expressions;class Test {    static void Main ()    {        expression<Func<int, bool>> a = x => false;        expression<Func<int, bool>> b = x => false;        expression<Func<int, bool>> c = x => true;        expression<Func<int, bool>> d = x => x == 5;        Func<expression, expression, bool> eq = expressionEqualityComparer.Instance.Equals;        Console.WriteLine (eq (a, b));        Console.WriteLine (eq (a, c));        Console.WriteLine (eq (a, d));    }}

它确实会打印True,False,False。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4934370.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存