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,一经查实,立即删除!

相关文章

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

addWeighted函数 这个函数的作用是,计算两个数组(图像阵列)的加权和。原型如下: 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 系列的第四篇文章,上一篇文章讲解了如何在 ASP.NET Core Identity 中实现用户登录与登出。这篇文章讲一讲如何在 ASP.NET Core Identity 中通过邮件服务实现用户账号的密码重置。点击上方或后方蓝字,阅读 ASP.NET Core Ident…

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

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

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

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

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

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

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

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

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

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

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…

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

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

一个js的动画,以前以为只有flash可以实现

11年刚干这行的时候&#xff0c;看到这种什么百叶窗的动画&#xff0c;以为都是flash实现的&#xff0c;最近突然灵光一闪&#xff0c;想到了用js实现&#xff08;虽然我不是做前端的&#xff0c;本人做.net&#xff09;。代码虽然实现了&#xff0c;但是比较乱&#xff0c;先上…

[转]docker入门(利用docker部署web应用)

前言:本课程是在慕课网上学习 第一个docker化的java应用 课程时所做的笔记,供本人复习之用 目录 第一章 什么是docker 1.1 docker的发展史 1.2 docker国内应用史 1.3 什么是Docker 第二章 了解docker 2.1 docker思想 2.1.1 集装箱 2.1.2 标准化 2.1.3 隔离 2.2 dock…

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

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

如何让 EF Core 6 支持 DateOnly 类型

前言上次&#xff0c;我们发现《DateOnly 和 TimeOnly 类型居然不能序列化》。但问题还不仅仅如此。问题重现假设有下列实体类&#xff1a;public class User {public int Id { get; set; }public string Name { get; set; } public DateOnly Birthday { get; set; } }由…

[转]Python 列表(List) 的三种遍历(序号和值)方法

if __name__ __main__:list [html, js, css, python]for i in list:print(list.index(i), i)# 方法1print( 遍历列表方法1&#xff1a;)for i in list:print ("序号&#xff1a;%s 值&#xff1a;%s" % (list.index(i) 1, i))print (\n遍历列表方法2&#xff1a;)…