C# Any()和AII()方法

d8b6dea80b41762ff086fb0aa6e2930c.png

我们常常需要的另一类查询是确定数据是否满足某个条件,或者确保所有数据都满足某个条件。例如,需要确定某个产品是否已经脱销(库存为 0),或者是否发生了某个交易。

25c0044444b8772d421812e40d0eae69.png

LINQ 提供了两个布尔方法:Any()和 All(),它们可以快速确定对于数据而言,某个条件是 true 还是 false。因此很容易地找到数据,如下面的示例所示。

273071a83c246ef6e224e826bf815bdb.png

按照下面的步骤在Visual Studio 中创建示例:

(1)创建一个新的控制台应用程序。

18b0bd928b59412228d37bc135af9dcd.png

(2)创建 Customer 类的代码和初始化顾客列表(List<Customer>customers)的代码。

0a94c55e3f41c4a0a3181635da46309c.png

(3)在Main() 方法中,在 customers 列表初始化和查询声明后,删除处理循环,输入如下所示的代码:

bool anyUSA = customers.Any(c => c.Country == "USA"); 
if (anyUSA)
{Console.WriteLine("Some customers are in the USA");
}
else
{Console.WriteLine("No customers are in the USA");
}
bool allAsia = customers.All(c => c.Region == "Asia"); 
if (allAsia)
{Console.WriteLine("All customers are in Asia");
}
else
{Console.WriteLine("Not all customers are in Asia");
}

577984f673de638aa667a8a0c772800c.png

(4)编译并执行程序,将看到一些消息,指出一些顾客来自美国,并不是所有的顾客都来自亚洲:

Some customers are in the USA 
Not all customers are in Asia
Program finished, press Enter/Return to continue:

a1e9d6a16dafa64040ce66eea368c123.png

示例的说明

Customer 类和 customers 列表的初始化与前面例子中的相同。在第一个查询语句中,调用了 Any() 方法,用一个简单的 Lambda 表达式检查 Customer Country 字段的值是不是USA:

bool anyUSA = customers.Any(c => c.Country == "USA");

57c5ca46af482a5c2e322ec91ec9eb13.png

LINQ方法Any() 把传送给它的 Lambda 表达式 c=>c.Country=="USA"应用于customers 列表中的所有数据,如果对于列表中的任意顾客,Lambda 表达式是 true,就返回 true。

15bf0a2b681ffb1e1de59972e4191181.png

接着检查 Any() 方法返回的布尔结果变量,输出一个消息,显示查询的结果 Any()方法虽然仅返回 true 或 false,但它会执行一个查询,得到 true 或 false 结果):

if (anyUSA)
{Console.WriteLine("Some customers are in the USA");
}
else
{Console.WriteLine("No customers are in the USA");
}

77261ee48d135ade0d64fa9e13cf6734.png

虽然可以通过一些巧妙的代码使这个消息更紧凑一些,但这里的代码比较直观,便于理解。anyUSA 设为 true, 因为数据集中的确有顾客居住在美国,所以看到了消息 Some customers are in the USA.

9160f944fc88802f34f23b1765b6d3ad.png

在下一个查询语句中,调用了 AII() 方法,利用另一个简单的 Lambda 表达式确定是否所有的顾客都来自亚洲:

bool allAsia = customers.All(c=> c.Region =="Asia");

fdff3a99346fb7e361410796db08970c.png

LINQ 方法All() 把 Lambda 表达式应用于数据集,并返回 false,因为有一些顾客不是来自亚洲。然后根据 allAsia 的值返回相应的消息。

c43e15a82047473790c79bfa3b32a2af.png

5bef8de7f72682f39f4b5660e858f159.png

 微信公众号 

DotNet讲堂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树状数组 + 位运算 LA 4013 A Sequence of Numbers

题目传送门 题意&#xff1a;n个数&#xff0c;两种操作&#xff0c;一是每个数字加x&#xff0c;二是查询& (1 << T) 1 的个数 分析&#xff1a;因为累加是永远的&#xff0c;所以可以离线处理。树状数组点是c[16][M] 表示数字x%(1 << j) 后的数字pos&#x…

【地理信息系统GIS】教案(七章全)第七章:3S技术综合应用

文章目录 第一节 3S技术概述第二节 GIS与RS的综合应用第三节 GIS与GPS的综合应用第四节 网络GIS的综合应用第一节 3S技术概述 1.什么是“3S” 技术? 遥感(Remote Sensing ,RS); 地理信息系统(Geographical information System ,GIS); 全球定位系统(Global Positio…

初级图像混合——线性混合操作

addWeighted函数 这个函数的作用是&#xff0c;计算两个数组&#xff08;图像阵列&#xff09;的加权和。原型如下&#xff1a; void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype-1); 第一个参数&am…

C语言九十九之实现一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 一、题目 一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多…

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(一)

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(一) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(二) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(三) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(四) 【专升本计算机】2021…

快速掌握 ASP.NET 身份认证框架 Identity - 通过邮件重置密码

这是 ASP.NET Core Identity 系列的第四篇文章&#xff0c;上一篇文章讲解了如何在 ASP.NET Core Identity 中实现用户登录与登出。这篇文章讲一讲如何在 ASP.NET Core Identity 中通过邮件服务实现用户账号的密码重置。点击上方或后方蓝字&#xff0c;阅读 ASP.NET Core Ident…

[.net 面向对象程序设计深入](4)MVC 6 —— 谈谈MVC的版本变迁及新版本6.0发展方向...

[.net 面向对象程序设计深入]&#xff08;4&#xff09;MVC 6 ——谈谈MVC的版本变迁及新版本6.0发展方向 1.关于MVC 在本篇中不再详细介绍MVC的基础概念&#xff0c;这些东西百度要比我写的全面多了&#xff0c;MVC从1.0到5.0的时间也不短了&#xff0c;很多人只是按照范例去使…

C语言试题101之输入三个整数 x,y,z,请把这三个数由小到大输出

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:输入三个整数 x,y,z,请把这三个数由小到大输出 分析:想办法把最小的数放到 x 上,先…

[转]史上最全的后端技术大全,你都了解哪些技术呢?

导语&#xff1a;工欲善其事&#xff0c;必先利其器&#xff1b;士欲宣其义&#xff0c;必先读其书。后台开发作为互联网技术领域的掌上明珠&#xff0c;一直都是开发者们的追逐的高峰。本文将从后台开发所涉及到的技术术语出发&#xff0c;基于系统开发、架构设计、网络通信等…

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(二)

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(一) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(二) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(三) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(四) 【专升本计算机】2021…

DB2错误码信息

00 完全成功完成 表 3 01 警告 表 4 02 无数据 表 5 07 动态 SQL 错误 表 6 08 连接异常 表 7 09 触发操作异常 表 8 0A 功能部件不受支持 表 9 0D 目标类型规范无效 表 10 0F 无效标记 表 11 0K RESIGNAL 语句无效 表 12 0N SQL/XML 映射错误 表 13 20 找不到 CASE…

WPF 开源控件库Extended WPF Toolkit介绍(经典)

01—Extended WPF Toolkit介绍Extended WPF Toolkit 可以说是WPF Toolkit 的一个补充&#xff0c;Extended WPF Toolkit包含了标准的WPF Toolkit里没有的Windows Presentation Foundation&#xff08;WPF&#xff09;控件、工具和组件。Extended WPF Toolkit是创建下一代Window…

vi和vim 的常用操作

&#xff1a;q! 强制退出 到文件末尾: ESC shift G : 到文件头: G G&#xff1a; 整块模式 快捷键 【不使用鼠标&#xff0c;来选择块】 v 字符选择&#xff0c;会将光标经过的地方反白选择&#xff01;V(大写) 行选择&#xff0c;会将光标经过…

C语言试题102之用*号输出字母 C 的图案

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:用号输出字母 C 的图案 分析:可先用’号在纸上写出字母 C,再分行输出。 2 、温馨提…

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(三)

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(一) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(二) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(三) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(四) 【专升本计算机】2021…

WPF 用代码实现WrapPanel右侧自动对齐(解决多余空白问题)

未处理前效果&#xff1a; 处理后效果&#xff1a; <Border Background"{StaticResource BorderBg}" BorderThickness"2" BorderBrush"{StaticResource BorderBrush}" CornerRadius"5" Padding"5" x:Name"SvK…

.NET 中的引用程序集

.NET 中的引用程序集Intro在 .NET 里有一种特殊的程序集叫做 ReferenceAssembly(引用程序集)&#xff0c;引用程序集&#xff08;Reference Assemblies&#xff09; 是一种特殊类型的程序集&#xff0c;它只包含表示库的公共 API 所需的最少元数据量。它们包括在生成工具中引用…

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(四)

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(一) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(二) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(三) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(四) 【专升本计算机】2021…

14.6.3.1 The InnoDB Buffer Pool

14.6.3.1 The InnoDB Buffer PoolInnoDB 保持一个存储区域被称为buffer pool 用于cache数据和索引在内存里,知道InnoDB buffer pool 如何工作,利用它来保持频繁访问的数据在内存里,是MYSQL 调优的一个重要方面。你可以配置InnoDB buffer pool的各个方面来改善性能:理想情况下,你…

C语言试题105之要求输出国际象棋棋盘

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:要求输出国际象棋棋盘。 分析:用 i 控制行,j 来控制列,根据 i+j 的和的变化来控制…