是什麼超過contains
LinqTOEntities差高炮存在幷包含
var s = new int[] { 1, 2, 3, 4, 5 };
dbset.where(x => s.contains(x.id);
或
var s = new int[] { 1, 2, 3, 4, 5 };
dbset.Where(x => s.Exists(y => x.id));
是什麼超過contains
LinqTOEntities差高炮存在幷包含
var s = new int[] { 1, 2, 3, 4, 5 };
dbset.where(x => s.contains(x.id);
或
var s = new int[] { 1, 2, 3, 4, 5 };
dbset.Where(x => s.Exists(y => x.id));
exists
之間的差的List<T>
一個方法,存在於陣列沒有這樣的方法或IEnumerable<T>
擴展。x => s.Exists(y => y == x.id)
(返回布爾你應該通過謂詞,即方法)Contains
,Exists
不受支持。+1,你在解釋這兩種方法之間的差異方面做得比我好得多。但是你能否描述通過一個原始值和一個謂詞之間的區別?我只是認爲這對理解這兩種方法之間的關鍵差異至關重要(因爲EF支持'Any'而不是'Exists',所以它不像一個大問題\差異在這裏) – 2013-03-18 16:24:51
@IlyaIvanov抱歉,沒有讓你在這裏:)謂詞是Exists方法簽名的一部分,傳遞原始值和謂詞之間的區別很簡單 - 您可以使用謂詞調用此方法,或者您的代碼不編譯 – 2013-03-18 16:29:44
例如,您可以捕獲謂詞中的局部變量,通過謂詞訪問它,從而創建比較靈活的條件。無論如何 - 讓我們自己學習吧。說到語法 - 你的回答完全有效:) – 2013-03-18 16:31:29
'存在()'不存在。 – SLaks 2013-03-18 16:00:34
存在這樣的方法。 – Phil 2013-03-18 16:01:14
爲了說明,[列表]公開了[Exists()](http://msdn.microsoft.com/zh-cn/library/bfed8bca.aspx)。你的'''是一個數組,而不是一個列表。 –
2013-03-18 16:04:05