zoukankan      html  css  js  c++  java
  • LINQ系列:Linq to Object量词操作符

      量词操作符返回一个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 };
  • 相关阅读:
    学习ASP.NET MVC3(5) Controller
    关于测试
    [JAVA SE] Java反射机制
    Windows 8 的软件开发架构
    Servlet生命周期与工作原理
    展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告(转载)
    JAVA小游戏代码(剪刀石头布)
    [JAVA SE] JSP中pageEncoding和charset区别,中文乱码解决方案
    我是工程师,不是编译器
    自己对三层架构理论的理解
  • 原文地址:https://www.cnblogs.com/libingql/p/4044625.html
Copyright © 2011-2022 走看看