程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> LINQ學習筆記:量詞

LINQ學習筆記:量詞

編輯:關於.NET

量詞

Contains: 如果輸入序列包含給定元素則返回true, 對應SQL語法為WHERE…IN

Any: 如果有任何的元素滿足給定的斷言判定則返回true, 對應SQL語法為WHERE…IN

All: 如果所有的元素都滿足給定的斷言判定則返回true, 對應SQL語法為WHERE

SequenceEqual: 如果第二個序列包含與輸入序列等同的元素則返回true

Contains與Any

Contains方法接受一個類型為TSource的參數, Any接受一個可選的斷言(predicate), 如果輸入序列包含有給定的元素則Contains返回true:

bool isTrue = new int[] { 23, 34, 4}.Contains (4);

對於Any, 如果表達式能夠匹配到至少一個元素, 則返回true, 我們可以用Any重寫前面的例子:

bool isTrue = new int[] { 23, 34, 4 }.Any (n => n == 4);

Any可以完成Contains能夠的所有事情, 而且可以做得更多:

bool isFalse = new int[] { 23, 34, 4 }.Any (n => n > 50);

調用Any的時候, 如果沒有斷言判定並且序列包含至少一個元素則永遠返回true, 以下是另外一種寫法返回與上述例子一致的結果:

bool isFalse = new int[] { 23, 34, 4 }.Where (n => n > 50).Any();

Any對於子查詢尤其有用.

All與SequenceEqual

只有當所有元素都滿足一個給定斷言的時候All才返回true, 以下例子返回那些采購訂單金額小於100的客戶列表:

dataContext.Customers.Where(c=>c.Purchases.All(p => p.Price < 100));

SequenceEqual用於比較兩個序列, 只有當兩個序列擁有完全等同的元素, 並且順序也一直時才返回true

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved