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.pswp.cn/news/285585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285585.shtml
英文地址,請注明出處:http://en.pswp.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 的和的變化來控制…