前言
在这篇文章中,我们将用一些例子来讨论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();
}
}
}
发表评论
登录用户才能发表评论, 请 登 录 或者 注册