【.NET基礎】Linq常用語法代碼演示

来源:https://www.cnblogs.com/weskynet/archive/2022/07/12/16471967.html
-Advertisement-
Play Games

前言:前言不重要,linq入門常用的語法,linq語法可以用來寫操作集合、資料庫表集合等等幾乎所有集合類型的操作。下麵就寫幾個案例(以List集合來做的),看代碼和運行結果即可。 本文演示環境:VS2022 + .NET 6 1、創建一個.NET 6.0的控制台項目,用來演示測試和輸出。 2、然後新 ...


前言:前言不重要,linq入門常用的語法,linq語法可以用來寫操作集合、資料庫表集合等等幾乎所有集合類型的操作。下麵就寫幾個案例(以List集合來做的),看代碼和運行結果即可。

本文演示環境:VS2022 + .NET 6 

 

1、創建一個.NET 6.0的控制台項目,用來演示測試和輸出。

 

2、然後新增兩個實體類,用於後續做測試使用,包括關聯查詢等。

 

3、初始化一丟丟數據,當做測試的原始數據。

 

4、先運行下,看下當前數據集合的結果集是怎麼樣的。此處以Json格式展示,以下其他輸出也一樣,都是用Json數據輸出,比較好對比。

 

5、先玩一下最簡單的lambda表達式的查詢方法,以下只是最基本的操作,還有很多別的擴展使用方法,待自己發現。

 

6、lambda表達式的操作方法,也可以對查詢結果欄位進行起別名。

 

7、有一個很好用的判斷集合是否存在數據的,直接使用 Any。 Any裡面也可以寫lambda表達式,例如 xxx.Any(x=>x.Id==2) ,如果結果為True,代表集合裡面存在欄位Id為2的數據。不存在即為False。

 

8、linq語法,最簡單的查詢方式,from 集合/表的別名 in 集合/表 where 條件 select 欄位集合;

 

9、同樣的,linq語法裡面的查詢結果欄位名,也可以起別名。

 

10、可以通過orderby對指定的欄位進行排序。也可以多個欄位併列排序,同時存在升序和降序,待自己發現。

 

11、也可以關聯查詢,關聯查詢最簡單的查詢語法書  from 表1別名 in 表1 join 表2別名 in 表2 on 表1.欄位 equals 表2.欄位 select 需要篩查的欄位;

也可以繼續拓展出和表3的關聯查詢、表4的關聯查詢,等等……

 

12、關聯查詢也一樣可以使用Where語句進行約束條件。

 

13、也可以進行分組查詢。group 後面接的是最終需要查詢的結果集欄位。

 

14、結果集欄位同樣支持別名、指定欄位等等。

 

15、以上就是該文章的全部內容,內容很簡單,希望對初學者或者入門的小伙伴會有幫助。當然,上面的演示都是非常基礎和簡單的,平常使用ORM進行操作資料庫、或者操作其他集合,例如DbSet、IEnumerable等等類型的,也都可以支持這麼操作。這樣可以避免直接寫SQL語句進行操作資料庫可能產生的一些不好的情景,例如切換另一個品牌的資料庫之類的,就可能需要重寫SQL語句了;而使用Linq語法就可以一定程度上避免存在這樣的情況,畢竟可以面向實體,只要保證實體沒變,就可以不擔心資料庫切換了,代碼也就不需要更改了。

如果覺得文章有幫助,歡迎點贊推薦、轉發【本文鏈接:https://www.cnblogs.com/weskynet/p/16471967.html 】和留言,謝謝。

 

歡迎加入QQ群: 群號:1079830632 WeskyNet交流群
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、IO流概述 1.原理 ![](https://img2022.cnblogs.com/blog/2901531/202206/2901531-20220621172751004-1385246087.png) 2.流的分類 3.流的體系,藍底框為重點掌握的 二、IO流操作 1.節點流-字元流 ( ...
  • 面向對象(上) java面向對象學習三條主線 * 1.java類及類的成員:屬性、方法、構造器、代碼塊、內部類 * 2.面向對象的三大特征:封裝,繼承,多態 * 3.其他關鍵字:this,super,static,final,abstract,interface,package,import等 面向 ...
  • 在做某個業務時,需要將文件傳輸到另一臺伺服器,指定使用sftp方式;於是在網上找到jsch包使用,原先代碼大致如下: 1 ChannelSftp channelSftp = null; 2 try { 3 JSch jsch = new JSch(); 4 jsch.getSession("ftpU ...
  • 1.== 既可以比較基本類型也可以比較引用類型。對於基本類型就是比較值,對於引用類型就是比較記憶體地址 2.equals的話,它是屬於java.lang.Object類裡面的方法,如果該方法沒有被重寫過預設也是==;我們可以看到String等類的equals方法是被重寫過的,而且String類在日常開 ...
  • 今天用Flask + MySQL 實現用戶註冊,登錄和登出。 一、實戰場景 Flask 框架實現用戶的註冊,登錄和登出。 二、主要知識點 flask_login 插件使用 SQLAlchemy 基礎操作 用戶基礎類設計 Flask 讀取配置文件 藍圖註冊與使用 wtforms 表單提交數據 wtfo ...
  • 1. 函數 在python中,函數通過def關鍵字、函數名和可選的參數列表定義。通過return關鍵字返回值。我們舉例來說明如何定義和調用一個簡單的函數: >>> def foo(): ... return 1 >>> foo() 1 方法體(當然多行也是一樣的)是必須的,通過縮進來表示,在方法名的 ...
  • 作者:小牛呼嚕嚕 | https://xiaoniuhululu.com 電腦內功、JAVA底層、面試相關資料等更多精彩文章在公眾號「小牛呼嚕嚕 」 Java對象究竟是什麼? 對象:對象是類的一個實例,有狀態和行為。 類:類是一個模板,它描述一類對象的行為和狀態。 例如 人 是一個類 其狀態有:姓 ...
  • Map下的介面及其多個實現類 1.Map :雙列數據存儲key-value對的數據, 類似於高中弄的函數:y=f(x) (1)HashMap:作為map的主要實現類,線程不安全的,效率高,存儲在null的key-value ①存儲在null的key和value如下圖所示 LinkedHashMap: ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...