如何检查两个不同的LINQ查询是否具有相同的结果?

时间:2015-08-16 09:01:28

标签: c# .net linq expression

打击两个不同的查询评估相同的结果 我需要在不执行查询的情况下检查这些的相等性 如何检查两个不同的LINQ查询是否相同?

var exprA = (from o in orders where o.HasPrice == true);
var exprB = (from o in orders where o.HasPrice != false);
//HasPrice is a boolean

任何.NET解决方案或现有库的构建都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

我认为,解决这个问题几乎是不可能的。因为,在复杂的查询中,存在以下复杂情况: where o.Price > 0 && o.Price < 2where o.Price == 1。 有时这些查询是相等的(当o.Price为int或long时),但有时则为no(例如,当o.Price为double时)。 所以,通常它无法解决。问题的边界是非常不确定的。

在我看来,您的问题不是原始问题,而是解决方案的一部分。所以,也许我们需要更深入地看到初始问题。

相关问题