的打擊兩個不同的查詢評估,以相同的結果。
我需要檢查這些平等而不執行查詢。
如何檢查是否兩個不同的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 –