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.mzph.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…