List、IList、ArrayList 和 Dictionary

List

  • 類型: 泛型類
  • 命名空間: System.Collections.Generic
  • 作用: List<T> 表示一個強類型的對象列表,可以通過索引訪問。提供了搜索、排序和操作列表的方法。
  • 特點: 類型安全,性能較好,適用于需要強類型和高效操作的場景。
  • 例子:
    List<int> numbers = new List<int>();
    numbers.Add(1);
    numbers.Add(2);
    numbers.Add(3);
    

    IList

  • 類型: 接口
  • 命名空間: System.Collections.Generic
  • 作用: IList<T> 表示可以通過索引單獨訪問的對象集合。它是所有泛型列表的基礎接口。
  • 特點: 提供了抽象層,可以用于更靈活和可擴展的實現。
  • 例子:
    IList<int> numbers = new List<int>();
    numbers.Add(1);
    numbers.Add(2);
    numbers.Add(3);
    

    ArrayList

  • 類型: 非泛型類
  • 命名空間: System.Collections
  • 作用: ArrayList 表示一個可以通過索引單獨訪問的對象集合。與 List<T> 不同,它不是類型安全的,可以存儲任何類型的對象。
  • 特點: 靈活但不類型安全,適用于需要存儲多種類型對象的場景。
  • 例子:
    ArrayList numbers = new ArrayList();
    numbers.Add(1);
    numbers.Add("two");
    numbers.Add(3.0);
    

    Dictionary

  • 類型: 泛型類
  • 命名空間: System.Collections.Generic
  • 作用: Dictionary<TKey, TValue> 表示一個鍵值對的集合。每個鍵必須是唯一的,提供了根據鍵快速查找值的功能。
  • 特點: 類型安全,查找速度快,適用于需要鍵值對存儲的場景。
  • 例子:
    Dictionary<string, int> ages = new Dictionary<string, int>();
    ages.Add("Alice", 30);
    ages.Add("Bob", 25);
    ages.Add("Charlie", 35);
    

    在WPF中的實例

    假設我們在WPF應用中使用這些集合來顯示數據,可以創建一個簡單的WPF應用來展示這些集合的用法。

XAML 文件 (MainWindow.xaml)

<Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow" Height="350" Width="525"><Grid><ListBox Name="listBox" HorizontalAlignment="Left" Height="300" VerticalAlignment="Top" Width="200"/></Grid>
</Window>
代碼后置文件 (MainWindow.xaml.cs)
using System.Collections;
using System.Collections.Generic;
using System.Windows;namespace WpfApp
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();DisplayData();}private void DisplayData(){// 使用 ListList<int> list = new List<int> { 1, 2, 3 };listBox.Items.Add("List:");foreach (var item in list){listBox.Items.Add(item);}// 使用 IListIList<string> ilist = new List<string> { "Alice", "Bob", "Charlie" };listBox.Items.Add("IList:");foreach (var item in ilist){listBox.Items.Add(item);}// 使用 ArrayListArrayList arrayList = new ArrayList { 1, "two", 3.0 };listBox.Items.Add("ArrayList:");foreach (var item in arrayList){listBox.Items.Add(item);}// 使用 DictionaryDictionary<string, int> dictionary = new Dictionary<string, int>{{ "Apple", 1 },{ "Banana", 2 },{ "Cherry", 3 }};listBox.Items.Add("Dictionary:");foreach (var kvp in dictionary){listBox.Items.Add($"{kvp.Key}: {kvp.Value}");}}}
}

?結果如下:

用到哪,學到哪!!

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

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

相關文章

每日一練 - BGP Keepalive 報文詳解

01 真題題目 關于 BGP 的 Keepalive 報文消息的描述,錯誤的是&#xff1a; A.Keepalive 周期性的在兩個 BGP 鄰居之間發送 B.缺省情況下,Keepalive 的時間間隔是 180s C.Keepalive 報文主要用于對等路由器間的運行狀態和鏈路的可用性確認 D.Keepalive 報文的組成只包含一個…

Web安全:SQL注入之時間盲注原理+步驟+實戰操作

「作者簡介」&#xff1a;2022年北京冬奧會網絡安全中國代表隊&#xff0c;CSDN Top100&#xff0c;就職奇安信多年&#xff0c;以實戰工作為基礎對安全知識體系進行總結與歸納&#xff0c;著作適用于快速入門的 《網絡安全自學教程》&#xff0c;內容涵蓋系統安全、信息收集等…

ICML2024高分論文!大模型計算效率暴漲至200%,來自中國AI公司

前段時間&#xff0c;KAN突然爆火&#xff0c;成為可以替代MLP的一種全新神經網絡架構&#xff0c;200個參數頂30萬參數&#xff1b;而且&#xff0c;GPT-4o的生成速度也是驚艷了一眾大模型愛好者。 大家開始意識到—— 大模型的計算效率很重要&#xff0c;提升大模型的token…

前端加載excel文件數據 XLSX插件的使用

npm i xlsx import axios from axios; axios //這里用自己封裝的http是不行的&#xff0c;踩過坑.get(url,{ responseType: "arraybuffer" }).then((re) > {console.log(re)let res re.datavar XLSX require("xlsx");let wb XLSX.read(r…

黑龍江大學文學院古代文學教研室安家琪副教授

女&#xff0c;生于1990年。蘭州大學文學學士、碩士&#xff0c;上海交通大學文學博士&#xff0c;曾赴臺灣東華大學交流&#xff0c;研究方向為明清詩文與唐代文學。 在《文藝理論研究》、《蘇州大學學報》、《唐史論叢》、《中國社會科學報》等期刊發表論文20余篇&#xff0…

2024年 電工杯 (A題)大學生數學建模挑戰賽 | 園區微電網風光儲協調優化配置 | 數學建模完整代碼解析

DeepVisionary 每日深度學習前沿科技推送&頂會論文&數學建模與科技信息前沿資訊分享&#xff0c;與你一起了解前沿科技知識&#xff01; 本次DeepVisionary帶來的是電工杯的詳細解讀&#xff1a; 完整內容可以在文章末尾全文免費領取&閱讀&#xff01; 問題重述…

干就對了!

成年人的世界哪有那么容易&#xff0c;不過都在負重前行&#xff0c;誰不是一邊抱怨著&#xff0c;一邊咬牙堅持&#xff0c;一邊崩潰&#xff0c;一邊還要自我安慰。 想改變&#xff0c;想更好&#xff0c;我們都有很多想法。 想再多不如動手做一次。一旦開始做了&#xff0…

前端手寫文件上傳;使用input實現文件拖動上傳

使用input實現文件拖動上傳 vue2代碼&#xff1a; <template><div><div class"drop-area" dragenter"highlight" dragover"highlight" dragleave"unhighlight" drop"handleDrop"click"handleClick&quo…

聽說京東618裁員沒?上午還在趕需求,下午就開會通知被裁了~

文末還有最新面經共享群&#xff0c;沒準能讓你刷到意向公司的面試真題呢。 京東也要向市場輸送人才了? 在群里看到不少群友轉發京東裁員相關的內容&#xff1a; 我特地去網上搜索了相關資料&#xff0c;看看網友的分享&#xff1a; 想不到馬上就618了&#xff0c;東哥竟然搶…

Python 機器學習 基礎 之 模型評估與改進 【模型評估與改進 / 交叉驗證】的簡單說明

Python 機器學習 基礎 之 模型評估與改進 【模型評估與改進 / 交叉驗證】的簡單說明 目錄 Python 機器學習 基礎 之 模型評估與改進 【模型評估與改進 / 交叉驗證】的簡單說明 一、簡單介紹 二、模型評估與改進 三、交叉驗證 1、scikit-learn 中的交叉驗證 2、交叉驗證的…

stm32工程綜合實驗_延時及中斷優先級

待下載綜合實驗 ![在這里插入圖片描述](https://img-blog.csdnimg.cn/161fa4e200bb4022bf384e80a3af8797.jpg 很好的編程思想模式及資料(富萊xx電子)

【repo系列】repo常用命令的使用

前言 repo是一種代碼版本管理工具&#xff0c;它是由一系列的Python腳本組成&#xff0c;封裝了一系列的Git命令&#xff0c;用來統一管理多個Git倉庫。 本文章描述repo常用命令的使用。 常用命令 初始化 repo init 初始化代碼倉 repo init [options]常用options: -u URL…

JDBC——API詳解

一、DriverManager 1、用于注冊驅動程序&#xff1a;registerDriver(Driver driver)。 更常用的是Class.forName("com.mysql.jdbc.Driver")是由于Driver中包含了registerDriver(Driver driver)&#xff0c;值得注意的是&#xff0c;是mysql5之后的版本中&#xff0…

1.每日設計模式-理論

目錄 一、什么是設計模式 二、設計原則 三、設計模式的種類 代碼地址&#xff1a;patterns: 每日設計模式 一、什么是設計模式 軟件設計模式(Design Pattern)是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結&#xff0c;使用設計模式是為了可重用代碼…

AI大模型的口語練習APP

開發一個使用第三方大模型的口語練習APP涉及多個步驟&#xff0c;從需求分析到部署上線。以下是詳細的開發流程和關鍵步驟&#xff0c;通過系統化的流程和合適的技術選型&#xff0c;可以有效地開發出一個功能豐富、用戶體驗良好的口語練習APP。北京木奇移動技術有限公司&#…

網絡初識 二

一、TCP/IP五層協議 -> 應用層 : 傳輸的數據在應用程序中如何使用 -> 傳輸層 : 關注的是通信的起點終點 -> 網絡層 : 關注的是通信中的路線規劃 -> 數據鏈路層 : 關注的是相鄰節點之間的通信細節 -> 物理層 : 網絡通信的基礎設施 說是五層,實際上下面…

Qt案例練習(有源碼)

項目源碼和資源&#xff1a;Qt案例練習: qt各種小案例練習,有完整資源和完整代碼 1.案例1 項目需求&#xff1a;中間為文本框&#xff0c;當點擊上面的復選框和單選按鈕時&#xff0c;文本框內的文本會進行相應的變化。 代碼如下&#xff1a; #include "dialog.h" …

C++的數據結構(十):AVL樹

AVL樹是一種自平衡的二叉搜索樹&#xff0c;得名于其發明者G.M. Adelson-Velsky和E.M. Landis。在AVL樹中&#xff0c;任何節點的兩個子樹的高度最多相差1&#xff0c;這種性質確保了AVL樹的查找、插入和刪除操作的時間復雜度接近O(log n)。 AVL樹是一種二叉搜索樹&#xff0c;…

MongoDB基礎入門到深入(七)建模、調優

文章目錄 系列文章索引十一、MongoDB開發規范十二、MongoDB調優1、三大導致MongoDB性能不佳的原因2、影響MongoDB性能的因素3、MongoDB性能監控工具&#xff08;1&#xff09;mongostat&#xff08;2&#xff09;mongotop&#xff08;3&#xff09;Profiler模塊&#xff08;4&a…

K8S認證|CKA題庫+答案| 16. 升級集群

16、升級集群 CKA v1.29.0模擬系統免費下載試用&#xff1a; 百度網盤&#xff1a;https://pan.baidu.com/s/1vVR_AK6MVK2Jrz0n0R2GoQ?pwdwbki 題目&#xff1a; 您必須在以下Cluster/Node上完成此考題&#xff1a; Cluster Ma…