首页 / 教程列表 / LINQ教程 / LINQ操作符之All和Any

LINQ操作符之All和Any

1100 更新于: 2022-03-23 读完约需 6 分钟

前言

在这篇文章中,我们将用一些例子来讨论C#中LINQ的All操作符。在继续阅读本文之前,请先阅读我们的上一篇文章《LINQ操作符之量词操作符》,在这篇文章中我们讨论了量词操作符的基础知识。

LINQ中的All操作符

C#中LINQ的All操作符用于检查数据源的所有元素是否满足给定的条件。如果所有元素都满足条件,则返回true,否则返回false

以下是一个使用All操作符检查集合numbers中是否所有元素都大于20的操作:

using System;
using System.Linq;

namespace LinqTutorial
{
    public class MyProgram
    {
        static void Main(string[] args)
        {
            var numbers = new[] { 1, 3, 8, 16, 20, 30, 56, 80 };
            var areAllNumbersGreaterThan10 = numbers.All(x => x > 20);
            Console.WriteLine(areAllNumbersGreaterThan10);
        }
    }
}

因为集合中有不大于20的元素,所以执行结果返回:false

LINQ中的Any操作符

C#中LINQ的Any操作符用于检查数据源中是否至少有一个元素满足给定的条件。如果任何元素满足给定条件,则返回true,否则返回false。它也用于检查一个集合是否包含一些数据。这意味着它还检查集合的长度。如果它包含任何数据,则返回true,否则返回false

Any操作符有两个可用的重载方法:

从上图中可以看到,Any扩展方法的第一个重载不接受任何参数,而另一个重载将谓词作为参数。

以下是一个使用Any操作符检查集合numbers中是否有元素都大于20的操作:

using System;
using System.Linq;

namespace LinqTutorial
{
    public class MyProgram
    {
        static void Main(string[] args)
        {
            var numbers = new[] { 1, 3, 8, 16, 20, 30, 56, 80 };
            var isAnyNumbersGreaterThan10 = numbers.Any(x => x > 20);
            Console.WriteLine(isAnyNumbersGreaterThan10);
        }
    }
}

因为集合中有大于20的元素,所以执行结果返回:true

Any操作符的无参数方法可以检测一个集合中是否有元素,示例如下:

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTutorial
{
    public class MyProgram
    {
        static void Main(string[] args)
        {
            // 定义一个空集合
            var numbers = new List<int>();
            // 检测集合中是否有元素
            var isAnyNumber = numbers.Any();
            // 返回False
            Console.WriteLine(isAnyNumber);
            // 向集合中添加一个值为1的元素
            numbers.Add(1);
            // 再次检测集合中是否有元素
            isAnyNumber = numbers.Any();
            // 返回True
            Console.WriteLine(isAnyNumber);
            Console.Read();
        }
    }
}

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

本文永久链接码友网 » LINQ教程 » LINQ操作符之All和Any 分享:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册