C# list集合

一、list集合基本使用

1.添加元素

① 單個元素添加

  List<int> list = new List<int>();for (int i = 0; i < 3; i++){list.Add(i);}//輸出:0,1,2

②初始化時添加元素?

  List<int> list2 = new List<int> { 1, 2, 3 };//輸出:0,1,2

③集合中添加集合?

  List<int> list2 = new List<int> { 1, 2, 3 };List<int> list3 = new List<int>();list3.AddRange(list2);//輸出:0,1,2

2.刪除元素

①刪除集合中匹配項元素,未找到匹配元素,刪除失敗,返回false

 List<int> list = new List<int> { 1, 5, 7, 2, 8 };bool b= list.Remove(3); // 刪除元素 3Console.WriteLine(b);  //false 刪除失敗
 List<int> list = new List<int> { 1, 2, 2, 2, 3 };bool b = list.Remove(3); // 刪除元素 3Console.WriteLine(b);  //true 刪除成功  輸出:1,2,2,2

②刪除集合中指定索引元素,索引從零開始

  List<int> list = new List<int> { 1, 2, 3, 4, 5 };list.RemoveAt(2); // 刪除索引為 2 的元素,即元素 3  輸出結果:1,2,4,5

③刪除集合中一定范圍內的元素,索引從零開始

  List<int> list = new List<int> { 1, 2, 3, 4, 5 };list.RemoveRange(0, 2); //刪除一定范圍內元素,從0開始,刪除2個  輸出結果:3,4,5

④刪除集合中符合條件的數據

 List<int> list = new List<int> { 1, 2, 3, 4, 5 };list.RemoveAll(i => i % 2 == 0); // 刪除所有偶數元素,輸出結果1,3,5

3.改變集合中的元素? (不重要,不常用)

4.查找集合中的元素

①查找集合中匹配項元素,未找到匹配元素,刪除-1,找到返回從0開始的索引

   List<int> list = new List<int>() { 1, 2, 3, 4, 5 };int index = list.IndexOf(5); // 返回4  未找到返回-1

②根據指定的條件查找符合條件的所有元素,并返回一個新的List<T>集合

   List<int> list = new List<int>() { 1, 2, 3, 4, 5 };List<int> newList = list.FindAll(x => x > 3); // 返回{ 4, 5 }

③使用Contains方法判斷元素是否存在

  List<int> list = new List<int>() { 1, 2, 3, 4, 5 };bool contains1 = list.Contains(3); // 返回truebool contains2 = list.Contains(6); // 返回false

二、list集合進階使用

1、排序

①升序方法1

 List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };list.Sort();  //對集合內元素進行升序排列  輸出:1,2,3,6,7,9

①升序方法2

   List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };list.Sort((a, b) => a.CompareTo(b)); //對集合內元素進行升序排列  輸出:1,2,3,6,7,9

②降序方法1

  List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };list.Sort();  //先升序list.Reverse(); //翻轉元素,達到降序的目的 輸出:9,7,6,3,2,1

②降序方法2

  List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };list.Sort((x, y) => y.CompareTo(x)); // 降序 輸出:9,7,6,3,2,1

2、求集合內全部元素平局值

 List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };double d= list.Average();  //計算集合內全部數據的平均值

3、求集合內全部元素之和

 List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };int i= list.Sum(); //計算集合內所有元素之和  輸出:28

4、求集合內元素最大值

   List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };int i= list.Max(); //計算集合內所有元素中最大值  輸出:9

5、求集合內元素最小值

  List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };int i = list.Min(); //計算集合內所有元素中最大值  輸出:1

6、集合轉數組

  List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };int[] ints = list.ToArray(); //list集合轉為int類型數組

7、集合內元素去重

   List<int> list = new List<int>() { 7, 3, 6, 3, 6, 7 };list= list.Distinct().ToList(); //list集合內元素去重 輸出:7,3,6

8、復制集合中指定索引長度元素至新集合中?

  List<int> list = new List<int>() { 1, 3, 6, 2, 8, 7 };list= list.GetRange(0, list.Count-3); //從集合指定索引處,拷貝指定長度數量 存儲在新集合中 輸出:1,3,6

9、連接兩個集合中全部元素生成新集合

   List<int> list1 = new List<int> { 1, 2, 3 };List<int> list2 = new List<int> { 4, 5, 6 };IEnumerable<int> combinedList = list1.Concat(list2);   //連接兩個集合 ,生成IEnumerable類型int[] ints= combinedList.ToArray();  //因IEnumerable類型使用foreach遍歷方便,為了使用for循環變量轉為數組類型for (int i = 0; i < ints.Length; i++){Console.WriteLine(ints[i]); //輸出連接后的集合元素  輸出結果:1,2,3,4,5,6}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19706.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19706.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19706.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Jenkins從放棄到入門:部署、配置與應用

目錄 Jenkins詳解 一、Jenkins介紹 1、Jenkins 功能 2、Jenkins 概念 3、Jenkins 目的 4、Jenkins 特性 5、產品發布流程 二、Jenkins CI/CD 流程 三、部署Jenkins git 1、jenkins 安裝 yum 安裝 jenkins *jenkins 依賴 java 環境 #注意2.346之后的版本不再支持jdk…

RabbitMQ-發布/訂閱模式

1、發布/訂閱模式介紹 在普通的生產者、消費者模式&#xff0c;rabbitmq會將消息依次傳遞給每一個消費者&#xff0c;一個worker一個&#xff0c;平均分配&#xff0c;這就是Round-robin調度方式&#xff0c;為了實現更加復雜的調度&#xff0c;我們就需要使用發布/訂閱的方式…

EXSI虛擬機新增磁盤并將空間擴充到已有分區

這里寫自定義目錄標題 1、在EXSI虛擬機中新增一塊磁盤配置大小2、確認新磁盤3、格式化新分區4、添加新分區到LVM5、將新增分區添加到已有分區里 1、在EXSI虛擬機中新增一塊磁盤配置大小 注意事項&#xff1a; (1)需確保虛擬機已關閉活處于維護模式&#xff0c;避免數據丟失 (2…

Spring Boot詳解:深入了解與實踐

文章目錄 1. Spring Boot簡介1.1 什么是Spring Boot&#xff1f;1.2 Spring Boot的歷史背景1.3 Spring Boot的核心特點 2. Spring Boot的核心概念2.1 自動配置2.1.1 自動配置原理2.1.2 自定義配置 2.2 Spring Boot Starter2.3 Spring Boot CLI 3. Spring Boot的主要功能模塊3.1…

網橋、路由器和網關有什么區別

在計算機網絡領域&#xff0c;網橋、路由器和網關都是常見的網絡設備&#xff0c;它們在網絡通信中扮演著不同的角色。雖然它們都有連接不同網絡的功能&#xff0c;但在實際應用中卻具有各自獨特的作用和特點。 1.網橋&#xff08;Bridge&#xff09; 定義&#xff1a;網橋是…

最佳 Mac 數據恢復:恢復 Mac 上已刪除的文件

嘗試過許多 Mac 數據恢復工具&#xff0c;但發現沒有一款能達到宣傳的效果&#xff1f;我們重點介紹最好的 Mac 數據恢復軟件 沒有 Mac 用戶愿意擔心數據丟失&#xff0c;但您永遠不知道什么時候會發生這種情況。無論是意外刪除 Mac 上的重要文件、不小心弄濕了 Mac、感染病毒…

CSS:list-style作用

list-style作用 介紹屬性1. list-style-type2.list-style-image3.list-style-position 常見用法1.設置列表項標記類型2.設置列表項標記圖像3.設置列表項標記位置4.組合使用5.為不同列表項設置不同的樣式6.重置列表樣式 示例 介紹 在Web開發中&#xff0c;list-style 是CSS的一…

ORACLE 查詢SQL優化

1 使用EXPLAIN PLAN 使用EXPLAIN PLAN查看查詢的執行計劃&#xff0c;這可以幫助你理解查詢是如何被Oracle執行的。基于執行計劃&#xff0c;你可以確定是否存在索引缺失、不必要的全表掃描等問題。 以下是幾種使用EXPLAIN PLAN的方法&#xff1a; 使用EXPLAIN PLAN FOR: 你可以…

【Epoch,Batch,Iteration】深度學習模型訓練相關基礎概念光速理解!

&#x1f525;模型訓練相關基礎概念&#xff01; Epoch: 一次 epoch 代表整個訓練數據集已經被完整地送入神經網絡進行了一輪訓練。通常&#xff0c;模型需要多次 epoch 才能充分學習數據集中的模式。Batch: 由于數據集可能過大&#xff0c;無法一次性全部加載到內存中進行訓練…

解決VSCode右鍵沒有Open In Default Browser問題

在VSCode進行Web小程序測試時&#xff0c;我們在新建的HTML文件中輸入 !會自動生成頁面代碼骨架&#xff0c;寫入內容后&#xff0c;我們想要右鍵在瀏覽器中預覽。發現右鍵沒有“Open In Default Browser”選項。原因是沒有安裝插件。 下面是解決方案&#xff1a;首先在VSCode找…

探索Lora:微調大型語言模型和擴散模型的低秩適配方法【原理解析,清晰簡潔易懂!附代碼】

探索Lora&#xff1a;微調大型語言模型和擴散模型的低秩適配方法 隨著深度學習技術的快速發展&#xff0c;大型語言模型&#xff08;LLMs&#xff09;和擴散模型&#xff08;Diffusion Models&#xff09;在自然語言處理和計算機視覺領域取得了顯著的成果。然而&#xff0c;這…

3d渲染的常用概念和技術,渲染100邀請碼1a12

之前我們介紹了3D渲染的基本原理和流程&#xff0c;這次說下幾個常用概念和技術。 3D渲染中涉及到很多專業的概念和技術&#xff0c;它們決定了渲染質量和效果&#xff0c;常用的有以下幾個。1、光線追蹤 光線追蹤是一些專業渲染器&#xff08;如V-Ray和Corona等&#xff09;…

Android UI控件詳細解析(四)

1.UI控件 1.1 TextView控件 常用屬性 屬性含義id給當前控件定義了一個唯 一標識符layout_width高度&#xff0c;單位&#xff1a;dp (wrap_content, match_parent)layout_height寬度&#xff0c;單位&#xff1a;dp (wrap_content, match_parent)background設置背景圖片text…

Django學習一:創建Django框架,介紹Django的項目結構和開發邏輯。創建應用,編寫主包和應用中的helloworld

文章目錄 前言一、Django環境配置1、python 環境2、Django環境3、mysql環境4、IDE&#xff1a;pycharm 二、第一次創建Django項目1、創建項目door_web_django_system2、運行啟動 三、Django項目介紹1、介紹Django項目結構2、第一個helloword4、django的項目邏輯&#xff08;和j…

React + Taro 項目 實際書寫 感受

之前我總結了部分react 基礎 根據官網的內容 以及Taro 框架的內容 今天我試著開始寫了一下頁面和開發 說一下我的感受 我之前寫的是vue3 今天是第一次真正根據需求做頁面開發 和邏輯功能 代碼的書寫 主體就是開發了這個頁面 雖說這個頁面 很簡單 但是如果你要是第一次寫 難說…

CATIA入門操作案例——壓縮彈簧繪制,螺旋線的使用,法則曲線應用

目錄 引出畫壓縮彈簧畫等距部分畫兩端的壓縮部分曲線縫合和掃掠封閉曲面得實體 總結異形彈簧新建幾何體草圖編輯&#xff0c;畫一條樣條線進行掃掠&#xff0c;圓心和半徑畫出曲面上的螺旋線再次選擇掃掠&#xff0c;圓心和半徑 其他自定義信號和槽1.自定義信號2.自定義槽3.建立…

Aigtek功率放大器的主要性能要求有哪些

功率放大器是電子系統中的重要組件&#xff0c;用于將低功率信號放大到高功率水平。功率放大器的性能直接影響到信號的放大質量和系統的整體性能。下面西安安泰將介紹功率放大器的主要性能要求。 增益&#xff1a;功率放大器應當具有足夠的增益&#xff0c;即將輸入信號的幅度放…

【仿真建模-anylogic】指定服務端口

Author&#xff1a;趙志乾 Date&#xff1a;2024-05-31 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 問題&#xff1a;anylogic動畫模型可以在瀏覽器中進行展示&#xff0c;且訪問端口在模型啟動時隨機生成&#xff1b;為了將其動畫頁面嵌…

讀取YUV數據到AVFrame并用多線程控制幀率

文件樹&#xff1a; 1.xvideo_view.h class XVideoView { public:// 像素格式枚舉enum Format { RGBA 0, ARGB, YUV420P };// 渲染類型枚舉enum RenderType { SDL 0 };// 創建渲染對象的靜態方法static XVideoView* Create(RenderType type SDL);// 繪制幀的方法bool DrawF…

影響生產RAG流水線5大瓶頸

檢索增強生成&#xff08;Retrieval Augmented Generation&#xff0c;RAG&#xff09;已成為基于大型語言模型的生成式人工智能應用的關鍵組成部分。其主要目標是通過將通用語言模型與外部信息檢索系統集成&#xff0c;增強通用語言模型的能力。這種混合方法旨在解決傳統語言模…