的打击两个不同的查询评估,以相同的结果。
我需要检查这些平等而不执行查询。
如何检查是否两个不同的LINQ查询是否相同?如何检查两个不同的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解决方案或现有的库将不胜感激。
只是好奇:什么情况下,为什么你需要知道,如果代码,基本上是做一样的吗? – Udontknow
@Udontknow性能问题。它不会总是一个布尔值。这可能是其中'o.Price> 0 && o.Price <2'和'其中o.Price == 1'这里是价格INT。请检查Backs回答这个问题。 –
你到底在找什么: 1,以上两个查询的最终结果IEnumerbale是否相同 或者2.你甚至不想进入生成IEnumerable类型的级别,并且希望事先给你赋值。在案例1中,我们可以简单地通过重写Equals和类型T的GetHashCode的方法,我可以提供创建一个IEnumerable比较器的解决方案是它的情况下1 –