【轉載】C#使用FirstOrDefault方法快速查找List集合中符合條件的第一個實體

来源:https://www.cnblogs.com/xu-yi/archive/2019/05/15/10868929.html
-Advertisement-
Play Games

在C#的List集合的操作中,有時候我們需要根據相關條件快速從List集合中獲取到第一個符合條件的實體對象,例如有個全校班級的List集合,我們需要根據班級代碼快速從List集合中查找出班級信息。可以使用傳統的for或者foreach迴圈來單獨比對查詢來實現,其實還可以通過Lambda表達式中的Fi ...


在C#的List集合的操作中,有時候我們需要根據相關條件快速從List集合中獲取到第一個符合條件的實體對象,例如有個全校班級的List集合,我們需要根據班級代碼快速從List集合中查找出班級信息。可以使用傳統的for或者foreach迴圈來單獨比對查詢來實現,其實還可以通過Lambda表達式中的FirstOrDefault方法快速來查找,只需一條語句即可查找出來。

例如有個全校班級信息的List集合List<StudentClass>  classList,需要快速從classList集合中查找班級代碼ClassCode為A101的班級實體記錄,可使用下列語句:

StudentClass   whereClass=classList.FirstOrDefault(t=>t.ClassCode=="A101");

上述語句中t是lambda表示式的一種寫法,代表List集合裡面的對象實體,你可命名為其他變數名也可以,例如a,b等。

如果List集合含有相應的符合條件的實體記錄,則FirstOrDefault返回查找到的第一條實體記錄信息,否則FirstOrDefault方法返回為NULL。

因此如果無法100%確保List集合中含有符合條件的記錄,則需要在使用前判斷是否為NULL。

上述Lambda表達式也可以加入相應的函數以及多個條件,例如加入SchoolName名稱包含實驗倆字的記錄,可通過下列語句實現。

StudentClass   whereClass=classList.FirstOrDefault(t=>t.ClassCode=="A101"&&t.SchoolName.Contain("實驗"));

 

備註:原文轉載自C#使用FirstOrDefault方法快速查找List集合中符合條件的第一個實體_IT技術小趣屋


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前面提到了微信功能變數名稱的封禁原理和檢測手段以及一些基本防範的方案。詳見《微信功能變數名稱檢測、防封,微信跳轉技術揭秘(一) -- 功能變數名稱檢測原理及防封方案》 要想讓地址在微信里不被封禁,或者說 儘可能的存活時間久一點,那麼需要註意以下幾點: 1、微信里的入口功能變數名稱最好用備案功能變數名稱。並且要加白名單2、不要QQ和微信同時 ...
  • 1、首先新建一個類庫,然後通過NuGet安裝下麵三個包 2、然後在程式包管理器控制臺中運行以下代碼(ps:記得預設項目選擇剛纔新建的項目,同時設置為啟動項) 3、如果你已經有資料庫表的話,接下系統會自動生成對應表的Model層 其中XXXContext中OnConfiguring方法,寫有資料庫連接 ...
  • 簡介 RabbitMQ是實現了高級消息隊列協議(AMQP)的開源消息中間件,基於Erlang語言編寫。 P:(producling)生產者,生產只意味著發送消息。 Q: (queue_name)隊列,隊列是位於rabbitmq中的post box的名稱 C: (Consuming)消費者,消費者主要 ...
  • 說明:不是很理解併發和緩存邏輯的朋友,請務必自己敲一下代碼,好好理解一下,,老司機不用多說了,,拿來就可以用。 ————————————————————— 華麗的分割線——————————————————————————— public static class CustomCache { priv ...
  • C#開發過程中針對字元串String類型的操作是常見操作,有時候需要判斷某個字元串是否包含在另一個字元串,此時可以使用IndexOf方法以及Contain方法來實現此功能,Contain方法返回True和False,而IndexOf方法可以返回所在的索引位置,如果為查找到對應的字元串,則返回-1。 ...
  • 在C#的List操作中,有時候我們需要對List集合對象的某個屬性進行求和操作,此時可以使用Lambda表達式中的Sum方法來快速實現此求和操作,使用Sum方法可使代碼簡潔易讀,並且省去寫for迴圈或者foreach遍歷List的繁瑣語句。 例如,在訂單集合List<Order> orderList ...
  • 很多時候操作List集合的過程中,我們需要根據特定的查詢條件,獲取List集合中有多少個實體對象符合查詢條件,例如一批產品的對象List集合,如果這批產品的不合格數量大於10則重點備註。在C#中可以自己寫for迴圈語句來逐條判斷條件來實現,其實還有種更簡單的方法就是使用Lambda表達式中的Coun ...
  • 等待一個中午的時間終於下載安裝完成,vs版本Enterprise 2019 16.0.4 官方可直接下載安裝引導程式: https://visualstudio.microsoft.com/zh-hans/downloads/ 網上找了個Visual Studio 2019(VS2019) 企業版 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...