C#中List、Dictionary、HashSet用法以及区别

标题:

前言

在C#编程中,List、Dictionary和HashSet是常用的集合类型,它们都有自己的特点和适用场景。本篇博客将介绍它们的用法、区别及常见操作。深入了解这些集合类型,能够帮助我们更好地组织和处理数据。


1. List:

List是一个有序可重复集合,可以存储多个相同或不同类型的元素。对于需要经常访问或修改集合中的元素、保持元素插入顺序的场景,List是一个常用的选择。

示例代码:

List<string> fruits = new List<string>();
fruits.Add("apple");
fruits.Add("banana");
fruits.Add("orange");foreach (string fruit in fruits)
{Console.WriteLine(fruit); // 输出:"apple", "banana", "orange"
}

2. Dictionary:

Dictionary是一个键值对集合,每个元素由一个键和一个关联的值组成。它提供了快速的键值查找能力,并且没有重复键。Dictionary适用于需要根据特定键进行快速检索的场景。

示例代码:

Dictionary<string, string> fruitsDict = new Dictionary<string, string>();
fruitsDict.Add("A", "apple");
fruitsDict.Add("B", "banana");
fruitsDict.Add("O", "orange");string value = fruitsDict["A"];
Console.WriteLine(value); // 输出:"apple"foreach (KeyValuePair<string, string> kvp in fruitsDict)
{Console.WriteLine(kvp.Key + ":" + kvp.Value); // 输出:"A:apple", "B:banana", "O:orange"
}

3. HashSet:

HashSet是一个无序、唯一的集合,它只能包含独一无二的元素。HashSet提供了高效的元素检索和去重功能。当需要快速查找和消除重复元素时,HashSet是一个理想的选择。

示例代码:

HashSet<string> fruitsSet = new HashSet<string>();
fruitsSet.Add("apple");
fruitsSet.Add("banana");
fruitsSet.Add("orange");
fruitsSet.Add("apple"); // 重复元素不会被添加foreach (string fruit in fruitsSet)
{Console.WriteLine(fruit); // 输出:"apple", "banana", "orange"
}

结论

List、Dictionary和HashSet是C#中常用的集合类型。List适用于有序可重复的场景,Dictionary适用于键值对查找,HashSet适用于唯一无序的场景。根据具体需求选择适当的集合类型,能够提高代码的效率和可读性。

希望本篇博客对您了解C#中List、Dictionary和HashSet的用法及区别有所帮助。在实际应用中,根据具体场景选择合适的集合类型将更加灵活和高效。愿每一行代码都充满条理!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/140242.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot实战(二十五)集成 Shiro

目录 一、Shiro 简介1.1 Shiro 定义1.2 Shiro 核心组件1.3 Shiro 认证过程 二、SpringBoot集成2.1 集成思路2.2 Maven依赖2.3 自定义 Realm2.4 Shiro 配置类2.5 静态资源映射2.6 AuthController2.7 User 实体2.8 用户接口类2.9 用户接口实现类2.10 OrderController&#xff08;…

stable diffusion和midjourney哪个好

midjourney和stable diffusion哪个好&#xff1f;midjourney和stable diffusion的区别&#xff1f;那么今天就从这2款软件入手&#xff0c;来探索一下他们的功能的各项区别吧&#xff0c;让你选择更适合你的一款ai软件。 截至目前&#xff0c;我们目睹了生成式人工智能工具的在…

CUDA编程入门系列(二) GPU硬件架构综述

一、Fermi GPU Fermi GPU如下图所示&#xff0c;由16个SM&#xff08;stream multiprocessor&#xff09;组成&#xff0c;不同的SM之间通过L2 Cache和全局内存进行相连。整个架构大致分为两个层次&#xff0c;①总体架构由多个SM组成 ②每个SM由多个SP core&#xff08;stream…

logback服务器日志删除原理分析

查看以下的logback官方文档 Chapter 4: Appendershttps://logback.qos.ch/manual/appenders.html 按文档说明&#xff0c;maxHistory是设置保存归档日志的最大数量&#xff0c;该数量的单位受到fileNamePattern里的值%d控制&#xff0c;如果有多个%d,只能有一个主%d&#xff0…

项目管理与SSM框架(二)| Spring

Spring简介 Spring是一个开源框架&#xff0c;为简化企业级开发而生。它以IOC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面&#xff09;为思想内核&#xff0c;提供了控制层 SpringMVC、数据层SpringData、服务层事务管理等众多技术&#xff0c;并可以整合众多…

第0章:怎么入手tensorflow

近年来人工智能的火爆吸引了很多人&#xff0c;网上相关的热门课程报名的人很多&#xff0c;但是坚持下去的人却少。那些晦涩的原理没有一定知识的积累很难能理解。 如果你对人工智能感兴趣&#xff0c;且想利用人工智能去实现某项功能&#xff0c;而不是对人工智能本身感兴趣&…

Vue3响应式原理初探

vue3响应式原理初探 为什么要使用proxy取代defineProperty使用proxy如何完成依赖收集呢&#xff1f; 为什么要使用proxy取代defineProperty 原因1&#xff1a;defineproperty无法检测到原本不存在的属性。打个&#x1f330; new Vue({data(){return {name:wxs,age:25}}})在vue…

【Linux初阶】多线程4 | POSIX信号量,基于环形队列的生产消费模型,线程池,线程安全的单例模式,STL-智能指针和线程安全

文章目录 ☀️一、POSIX信号量&#x1f33b;1.引入&#x1f33b;2.信号量的概念&#x1f33b;3.信号量函数 ☀️二、基于环形队列的生产消费模型&#x1f33b;1.理解环形队列&#x1f33b;2.代码案例 ☀️三、线程池☀️四、线程安全的单例模式&#x1f33b;1.单例模式与设计模…

前端渲染后端返回的HTML格式的数据

在日常开发中&#xff0c;经常有需要前端渲染后端返回页面的需求&#xff0c;对于不同数据结构&#xff0c;前端的渲染方式也不尽相同&#xff0c;本文旨在对各种情况进行总结。 后端返回纯html文件格式 数据包含html标签等元素&#xff0c;数据类型如下图&#xff1a; 前端通…

檀香香料经营商城小程序的作用是什么

檀香香料有安神、驱蚊、清香等作用&#xff0c;办公室或家庭打坐等场景&#xff0c;都有较高的使用频率&#xff0c;不同香料也有不同效果&#xff0c;高品质香料檀香也一直受不少消费者欢迎。 线下流量匮乏&#xff0c;又难以实现全消费路径完善&#xff0c;线上是商家增长必…

PR2023中如何导入字幕

PR中如何导入字幕 方法一&#xff1a; 点开文本&#xff0c;字幕&#xff0c;新建字幕分段&#xff08;点击右上角…三个点&#xff09; 键入调整内容 方法二 点开基本图形&#xff0c;编辑&#xff0c;调整&#xff0c;拖动位置。

功能集成,不占空间,同为科技TOWE嵌入式桌面PDU超级插座

随着现代社会人们生活水平的不断提高&#xff0c;消费者对生活质量有着越来越高的期望。生活中&#xff0c;各式各样的电气设备为我们的生活带来了便利&#xff0c;在安装使用这些用电器时&#xff0c;需要考虑电源插排插座的选择。传统的插排插座设计多暴露于空间之中&#xf…