C# 集合用法介绍
在C#中,集合是一种特殊的数据类型,允许我们将多个元素组织在一起。这些元素可以是相同的类型或者可以是不同的类型。C#集合主要包括以下几种类型:
- List:它是一个有序的元素列表,用户可以添加、删除或查找元素。
- Dictionary:它是一个键值对的集合,用户可以使用键来获取对应的值。
- HashSet:它是一组不重复的元素,提供高效的集合操作,如并集、交集等。
- Queue:它是一种先进先出(FIFO)的集合,元素从集合的一端添加,并从另一端移除。
- Stack:它是一种后进先出(LIFO)的集合,元素从集合的顶部添加和移除。
以下是各种集合的使用示例:
List
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6); // 添加元素
int firstNumber = numbers[0]; // 获取元素
numbers.Remove(1); // 删除元素
Dictionary
Dictionary<string, int> ages = new Dictionary<string, int>
{{"Alice", 23},{"Bob", 27}
};
ages.Add("Charlie", 30); // 添加元素
int ageOfAlice = ages["Alice"]; // 获取元素
ages.Remove("Alice"); // 删除元素
HashSet
HashSet<int> uniqueNumbers = new HashSet<int> { 1, 2, 3, 4, 5 };
uniqueNumbers.Add(6); // 添加元素
bool containsFour = uniqueNumbers.Contains(4); // 检查元素是否存在
uniqueNumbers.Remove(1); // 删除元素
Queue
Queue<string> queue = new Queue<string>();
queue.Enqueue("Alice"); // 添加元素
queue.Enqueue("Bob");
string firstInLine = queue.Dequeue(); // 移除并获取元素
Stack
Stack<string> stack = new Stack<string>();
stack.Push("Alice"); // 添加元素
stack.Push("Bob");
string topOfStack = stack.Pop(); // 移除并获取元素
以上示例应给出一个关于如何使用C#集合的基本概念。
集合的遍历
C#中所有的集合类都可以使用foreach循环进行遍历。以下是各种集合遍历的示例:
List
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{Console.WriteLine(number);
}
Dictionary
Dictionary<string, int> ages = new Dictionary<string, int>
{{"Alice", 23},{"Bob", 27}
};
foreach (KeyValuePair<string, int> entry in ages)
{Console.WriteLine($"Name: {entry.Key}, Age: {entry.Value}");
}
HashSet
HashSet<int> uniqueNumbers = new HashSet<int> { 1, 2, 3, 4, 5 };
foreach (int number in uniqueNumbers)
{Console.WriteLine(number);
}
Queue
Queue<string> queue = new Queue<string>();
queue.Enqueue("Alice");
queue.Enqueue("Bob");
foreach (string name in queue)
{Console.WriteLine(name);
}
Stack
Stack<string> stack = new Stack<string>();
stack.Push("Alice");
stack.Push("Bob");
foreach (string name in stack)
{Console.WriteLine(name);
}
以上每个示例都将遍历集合中的每个元素,并使用Console.WriteLine将其打印到控制台。请注意,遍历Dictionary时,我们遍历的是KeyValuePair实例,可以通过Key和Value属性访问键和值。
相关文章:
C# 集合用法介绍
在C#中,集合是一种特殊的数据类型,允许我们将多个元素组织在一起。这些元素可以是相同的类型或者可以是不同的类型。C#集合主要包括以下几种类型: List:它是一个有序的元素列表,用户可以添加、删除或查找元素。Dictio…...
linux三次握手、四次挥手
TCP协议是一个安全的、面向连接的、流式传输协议,所谓的面向连接就是三次握手,对于程序猿来说只需要在客户端调用connect()函数,三次握手就自动进行了。先通过下图看一下TCP协议的格式,然后再介绍三次握手的具体流程。 1.tcp协议…...
C# 泛型介绍
C# 中的泛型(Generics)是一种强类型参数化的特性,它允许你编写不具体指定数据类型的代码,而在实际使用时再指定具体的类型。泛型的引入使得代码更加灵活、可重用,并提高了类型安全性。 C#泛型基本用法 以下是一个简单…...
Windows如何正确设置PHP环境变量以在Git Bash中运行命令
1、随便找一个目录,鼠标右键打开git bash here 2、cd的根目录 3、找到php安装目录 4、 在根目录下打开 vim .bash_profile ,添加环境变量,php地址根据自己的本地地址而定 PATH$PATH:/d/phpstudy_pro/Extensions/php/php7.3.4nts 添加后保存…...
[代码实战和详解]VGG16
VGG16 详解 我的github代码实现:vgg16 我们在vgg16神经网络上训练了SIGNS数据集,这是一个分类的数据集,在我的github上有介绍怎么下载数据集以及如何训练。 VGG16是一个卷积神经网络(CNN)架构,它在2014年…...
x3daudio1_7.dll错误:解决方法和丢失原因及作用
x3daudio1_7.dll是Windows操作系统中的一个动态链接库(DLL)文件,主要作用是为DirectX音频提供支持。DirectX是微软推出的一套多媒体应用程序开发接口,广泛应用于游戏、多媒体制作等领域。x3daudio1_7.dll文件包含了许多与三维音频…...
pipeline + node +jenkins+kubernetes部署yarn前端项目
1、编写Dockerfile文件 # Set the base image FROM node:16.10.0# WORKDIR /usr/src/app/ WORKDIR /home/option# Copy files COPY ./ /home/option/# Build arguments LABEL branch${BRANCH} LABEL commit${COMMIT} LABEL date${BUILD_DATE} ARG ENV# Set ENV variables ENV …...
计算机网络中的面向连接与无连接
目录 面向连接和无连接在计算机网络中是如何理解的面向连接和无连接的通信在路由选择上有哪些区别 面向连接和无连接在计算机网络中是如何理解的 在计算机网络中,面向连接和无连接是两种核心的网络通信方式,它们决定了数据包如何传输和接收。 面向连接&…...
EventEmitter3在vue中的使用
前提 vue中的组件传递方式有很多,包括父子组件之间的传值(props,emit)、事件总线($ bus)、状态管理模式(vuex,pinia),现在推荐一种可以替代$bus的一种传值方…...
双剑合璧:基于Elasticsearch的两路召回语义检索系统,实现关键字与语义的高效精准匹配
搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…...
LeetCode34-34. 在排序数组中查找元素的第一个和最后一个位置
🔗:代码随想录:二分查找的算法讲解:有关left<right和left<right的区别 class Solution {public int[] searchRange(int[] nums, int target) {int nnums.length;int l0,hn-1;if(numsnull){return null; }if(n0){return new int[]{-1,-1}; }if(target&l…...
ddrnet 分割学习笔记
目录 修改后可以加载预训练: 训练自己的数据代码: 默认分割后特征下采样8倍,最后用上采样恢复到原图; 修改后可以加载预训练: import math import torch import numpy as np import torch.nn as nn import torch.nn.functional as F from torch.nn import init from …...
Outlook关闭过去事件的提醒
Outlook关闭过去事件的提醒 故障现象 最近Outlook中推出的新功能让我们可以选择自动关闭过去事件的提醒。 目前这个功能暂时只向当月通道的Office 365 订阅者发布。 这些用户升级到1810版本后,可以在不想收到已发生事件提醒的时候通过下面的步骤自动忽略过去事件…...
git 简单入门
git init touch test.txt git add test.txt git commit -m 初始化 仓库 git log //查找日志 git checkout -b dev //创建并切换dev分支 git branch // 查找分支 此时有master 和 dev分支, 此时在dev分支 dev分支也有test.txt文件 vim test.txt //写入dev …...
只有开源才能拯救AI
导语 | 随着 AI 技术的蓬勃发展,大模型的开源化正成为人工智能领域的新潮流,但同时引发的伦理和安全风险也饱受大家关注,如何把握平衡其中的尺度成为开源的一大难题。我们又应该如何有效进行开源治理?未来将走向何方?今…...
在Spring Boot中使用进程内缓存和Cache注解
在Spring Boot中使用内缓存的时候需要预先知道什么是内缓存,使用内缓存的好处。 什么是内缓存 内缓存(也称为进程内缓存或本地缓存)是指将数据存储在应用程序的内存中,以便在需要时快速访问和检索数据,而无需每次都从…...
YOLOv5项目实战(3)— 如何批量命名数据集中的图片
前言:Hello大家好,我是小哥谈。本节课就教大家如何去批量命名数据集中的图片,希望大家学习之后可以有所收获!~🌈 前期回顾: YOLOv5项目实战(1)— 如何去训练模型 YOLOv5项目实战(2...
React + hooks + Ts 实现将后端响应的文件流(如Pdf)输出到浏览器下载
React 篇 一些关于react 学习与总结 这篇是记录开发中关于实现将后端响应的文件流(如Pdf)输出到浏览器下载,基于React Hooks Ts。 开发场景: 实现将后端响应的文件流(如Pdf)输出到浏览器下载,…...
大数据基础设施搭建 - JDK
一、创建目录 需要在root账号下操作,因为/目录下只能用root账号创建目录 1.1 创建目录 [roothadoop102 ~]# mkdir /opt/software/ [roothadoop102 ~]# mkdir /opt/module/1.2 修改权限 修改module、software文件夹的所有者和所属组均为hadoop用户,远程使…...
从0到0.01入门React | 010.精选 React 面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…...
5分钟掌握暗黑破坏神2存档编辑:免费开源工具完全攻略
5分钟掌握暗黑破坏神2存档编辑:免费开源工具完全攻略 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑2刷装备而烦恼?想快速体验不同build却不想重复练级?d2s-editor这款暗黑破坏神2…...
GESP6级C++考试语法知识(二十六、广度优先搜索(一、认识BFS))
第一课《消息传播城——认识广度优先搜索 BFS》🌟一、故事开始:国王的紧急消息1、很久很久以前,有一座叫:🏰「消息传播城」的大王国。2、有一天,怪兽突然来袭!国王必须立刻通知所有村庄…...
告别网课低效循环:这款开源工具如何让学习时间减半
告别网课低效循环:这款开源工具如何让学习时间减半 【免费下载链接】mooc-assistant 慕课助手 浏览器插件(Chrome/Firefox/Opera) 项目地址: https://gitcode.com/gh_mirrors/mo/mooc-assistant 你是否曾在深夜对着电脑屏幕,一遍遍重复着相同的手…...
终极指南:如何为AKShare财经数据接口库构建完整的技术文档体系
终极指南:如何为AKShare财经数据接口库构建完整的技术文档体系 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcode.com/gh_mirror…...
深度解析AutoJs6在安卓11上的外部存储写入问题:完整技术方案与最佳实践
深度解析AutoJs6在安卓11上的外部存储写入问题:完整技术方案与最佳实践 【免费下载链接】AutoJs6 安卓平台 JavaScript 自动化工具 (Auto.js 二次开发项目) 项目地址: https://gitcode.com/gh_mirrors/au/AutoJs6 AutoJs6作为一款安卓平台JavaScript自动化工…...
Real-ESRGAN-GUI完全指南:让模糊图片秒变高清的免费AI神器
Real-ESRGAN-GUI完全指南:让模糊图片秒变高清的免费AI神器 【免费下载链接】Real-ESRGAN-GUI Lovely Real-ESRGAN / Real-CUGAN GUI Wrapper 项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN-GUI 还在为模糊的老照片、低分辨率的网络图片而烦恼吗&…...
告别虚拟机卡顿:在VMware里给CentOS 7最小化安装分配多少内存和CPU才够用?
虚拟机性能优化指南:CentOS 7最小化安装的资源分配策略在个人电脑上运行虚拟机时,最令人头疼的问题莫过于性能瓶颈。许多初学者在创建CentOS 7虚拟机时,常常陷入两难境地:分配过多资源会影响宿主机运行,分配过少又会导…...
magic - trace:高分辨率追踪利器,解决应用难题,还能深入洞悉程序运行!
magic - trace 概述magic - trace 能够收集并展示进程活动的高分辨率追踪信息,可用于解决生产环境中应用程序处理请求速度慢、了解代码实际运行情况、获取应用崩溃前活动历史等问题。它性能开销在 2% - 10% 之间,使用时无需修改应用程序,能以…...
手把手教你用Python监控自己的ETH钱包地址是否‘被碰撞’(含简易脚本)
用Python构建ETH钱包安全监控系统:从API调用到风险预警实战最近在整理自己的数字资产时,突然意识到一个问题:我们平时使用的ETH钱包地址,是否可能因为公开交易记录而暴露在风险中?这个问题让我开始研究如何通过技术手段…...
RHEL 9保姆级教程:手把手教你用阿里云镜像替换官方yum源(附完整命令)
RHEL 9极速配置指南:阿里云镜像源一键切换实战刚拿到RHEL 9服务器时,最令人抓狂的莫过于看着进度条像蜗牛一样缓慢爬行。官方源的速度不仅影响工作效率,更可能让紧急部署变成一场噩梦。本文将用最直白的操作语言,带你三步完成阿里…...
