我有以下語句中使用時不同的結果:當WHERE子句的LINQ語句中使用的生產外
List<string> tracks = new List<string> { "ABC", "DEF" };
var items = (from i in Agenda.AgendaSessions
select i).Where(p => p.Tracks.Any(s => tracks.Contains(s.Code)));
這將返回軌道包含不是ABC DEF所有會話,現在當我重寫喜歡的聲明如下所示,無論返回所有會話,就好像該子句總是成立,任何人都可以對此有所瞭解嗎?
var items = from i in Agenda.AgendaSessions
where i.Tracks.Any(s=> tracks.Contains(s.Code))
select i;
更新
如果在這裏內的其他條款,不影響結果嗎?
樣品是相同的。除了第一種情況,你創建一個新的枚舉器。 「Agenda.AgendaSessions.Where(...)'? – 2010-08-08 09:26:33
我知道他們是等效的,但爲什麼第二個產生正確的結果呢? – Ayyash 2010-08-08 10:48:19