量詞操作符返回一個Boolean值,指示序列中是否存在部分或全部元素符號指定條件。LINQ中量詞操作符包括:All、Any和Contains。
1. All
All操作符判定在集合中是否所有的值都滿足指定的條件。返回值是一個Boolean值。如果所有值都滿足條件則返回true,否則返回false。
1>. 原型定義
public static bool All<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = fibonacci.All(f => f > 2); // false
var expr = context.Products .All(p => p.UnitPrice > 10m);
2. Any
Any操作符判定一個集合中是否有任何滿足指定條件的值,或者一個序列中是否包含有滿足指定條件的元素。返回結果是一個Boolean值。如果存在至少一個值滿足條件則返回true,否則返回false。
1>. 原型定義
public static bool Any<TSource>(this IQueryable<TSource> source);
public static bool Any<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = fibonacci.Any(f => f > 2); // true
var expr = context.Products .Any(p => p.UnitPrice > 10m);
3. Contains
Contains操作符判定返回的計劃是否包含指定的元素。返回值是一個Boolean值。如果存在滿足條件的元素則返回true,否則返回false。
1>. 原型定義
public static bool Contains<TSource>(this IQueryable<TSource> source, TSource item);
public static bool Contains<TSource>(this IQueryable<TSource> source, TSource item, IEqualityComparer<TSource> comparer);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = fibonacci.Contains(2); // true
var expr = context.Products .Select(p=>p.UnitPrice) .Contains(10m);
var expr = from p in context.Products where (new string[] { "LINQ to Object", "LINQ to ADO.NET" }).Contains(p.ProductName) select new { 商品名稱 = p.ProductName, 單價 = p.UnitPrice };