ASP.NET|日常开发中数据集合详解
ASP.NET|日常开发中数据集合详解
- 前言
- 一、数组(Array)
- 1.1 定义和基本概念
- 1.2 数组的操作
- 二、列表(List<T>)
- 2.1 特点和优势
- 2.2 常用操作
- 三、字典(Dictionary<K, V>)
- 3.1 概念和用途
- 3.2 操作方法
- 四、哈希集(HashSet<T>)
- 4.1 特点和应用场景
- 4.2 操作介绍
- 结束语
- 优质源码分享
ASP.NET|日常开发中数据集合详解
,在ASP.NET的日常开发中,处理数据集合是一个非常重要的环节。数据集合通常用于存储、操作和传递多个数据项。在.NET框架中,有多种数据集合类型可供选择,每种类型都有其特定的用途和性能特点。以下是对ASP.NET日常开发中常用数据集合的详解。
前言
在数字浪潮汹涌澎湃的时代,程序开发宛如一座神秘而宏伟的魔法城堡,矗立在科技的浩瀚星空中。代码的字符,似那闪烁的星辰,按照特定的轨迹与节奏,组合、交织、碰撞,即将开启一场奇妙且充满无限可能的创造之旅。当空白的文档界面如同深邃的宇宙等待探索,程序员们则化身无畏的星辰开拓者,指尖在键盘上轻舞,准备用智慧与逻辑编织出足以改变世界运行规则的程序画卷,在 0 和 1 的二进制世界里,镌刻下属于人类创新与突破的不朽印记。
一、数组(Array)
1.1 定义和基本概念
数组是一种最基本的数据集合类型,它是一个包含固定大小的相同类型元素的顺序集合。在ASP.NET开发中,数组用于存储和操作一组相关的数据。例如,存储一组用户的年龄或者一组产品的价格。
数组的大小在创建时就已经确定,并且不能轻易改变。例如,下面是一个简单的整数数组的声明:
int[] ages = new int[5];
这个数组可以存储 5 个整数,索引从 0 到 4。
1.2 数组的操作
元素访问:通过索引访问数组元素,如ages[0]表示访问数组ages中的第一个元素。
赋值和修改:可以对数组元素进行赋值和修改操作。例如,ages[0] = 25;将数组的第一个元素赋值为 25。
遍历数组:可以使用循环来遍历数组。在 C# 中,最常用的是for循环。例如:
for (int i = 0; i < ages.Length; i++)
{Console.WriteLine(ages[i]);
}
这将依次打印数组ages中的每个元素。
二、列表(List)
2.1 特点和优势
List是一种动态大小的数据集合,它在System.Collections.Generic命名空间下。与数组不同,List可以方便地添加和删除元素,其大小会根据元素的添加和删除自动调整。
例如,List可以用于存储整数集合,List可以存储字符串集合。以下是一个创建和使用List的示例:
List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");
这里创建了一个List并添加了两个元素。
2.2 常用操作
添加元素:使用Add方法添加元素,如上面示例所示。还可以使用Insert方法在指定位置插入元素,例如names.Insert(1, “Charlie”);会将 “Charlie” 插入到索引为 1 的位置。
删除元素:可以使用Remove方法根据元素的值删除元素,如names.Remove(“Bob”);。如果要根据索引删除元素,可以使用RemoveAt方法,例如names.RemoveAt(0);会删除索引为 0 的元素。
查找元素:可以使用Contains方法检查集合中是否包含特定元素,如if (names.Contains(“Alice”)) {…}。还可以使用IndexOf方法查找元素的索引,例如int index = names.IndexOf(“Alice”);。
遍历列表:和数组类似,可以使用for循环遍历List,也可以使用foreach循环。例如:
foreach (string name in names)
{Console.WriteLine(name);
}
三、字典(Dictionary<K, V>)
3.1 概念和用途
Dictionary<K, V>是一种键 - 值对(key - value pair)的数据集合,它存储的元素是由一个键和一个与之关联的值组成。在System.Collections.Generic命名空间下。这种数据结构适用于需要根据键快速查找值的场景。
例如,在一个用户信息管理系统中,可以使用Dictionary<string, UserInfo>,其中键是用户的用户名,值是包含用户详细信息(如年龄、地址等)的UserInfo对象。
3.2 操作方法
添加元素:使用Add方法添加键 - 值对,例如:
Dictionary<string, int> scores = new Dictionary<string, int>();
scores.Add("Alice", 90);
scores.Add("Bob", 80);
访问元素:通过键来访问值,如int aliceScore = scores[“Alice”];。但是要注意,如果键不存在,会抛出异常。可以使用TryGetValue方法来避免这种情况,例如:
if (scores.TryGetValue("Charlie", out int charlieScore))
{Console.WriteLine($"Charlie's score: {charlieScore}");
}
else
{Console.WriteLine("Charlie's score not found.");
}
删除元素:使用Remove方法根据键删除元素,如scores.Remove(“Bob”);。
遍历字典:可以使用foreach循环遍历字典。由于字典包含键 - 值对,所以遍历的变量类型是KeyValuePair<K, V>。例如:
foreach (KeyValuePair<string, int> score in scores)
{Console.WriteLine($"{score.Key}: {score.Value}");
}
四、哈希集(HashSet)
4.1 特点和应用场景
HashSet是一个无序的、不包含重复元素的数据集合,位于System.Collections.Generic命名空间下。它主要用于快速判断一个元素是否在集合中,以及进行集合的交集、并集、差集等操作。
例如,在一个用户权限管理系统中,HashSet可以用于存储用户拥有的权限名称集合,通过判断一个权限名称是否在集合中,来确定用户是否具有该权限。
4.2 操作介绍
添加元素:使用Add方法添加元素,例如:
HashSet<string> permissions = new HashSet<string>();
permissions.Add("read");
permissions.Add("write");
检查元素是否存在:
使用Contains方法,如if (permissions.Contains(“read”)) {…}。
集合操作:
交集(IntersectWith):可以计算两个HashSet的交集。例如:
HashSet<string> otherPermissions = new HashSet<string>() { "read", "execute" };permissions.IntersectWith(otherPermissions);
这将使permissions集合变为它与otherPermissions集合的交集。
并集(UnionWith):用于计算并集,例如permissions.UnionWith(otherPermissions);会将otherPermissions中的元素添加到permissions中,去除重复元素。
差集(ExceptWith):计算差集,例如permissions.ExceptWith(otherPermissions);会从permissions中去除otherPermissions中包含的元素。
结束语
亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。
愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。
至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。
优质源码分享
-
【百篇源码模板】html5各行各业官网模板源码下载
-
【模板源码】html实现酷炫美观的可视化大屏(十种风格示例,附源码)
-
【VUE系列】VUE3实现个人网站模板源码
-
【HTML源码】HTML5小游戏源码
-
【C#实战案例】C# Winform贪吃蛇小游戏源码
💞 关注博主 带你实现畅游前后端
🏰 大屏可视化 带你体验酷炫大屏
💯 神秘个人简介 带你体验不一样得介绍
🎀 酷炫邀请函 带你体验高大上得邀请
① 🉑提供云服务部署(有自己的阿里云);
② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;
如🈶合作请联系我,期待您的联系。
注:本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有) ,https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。
亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌
原文地址:https://blog.csdn.net/weixin_43151418/article/details/144309337(防止抄袭,原文地址不可删除)
相关文章:

ASP.NET|日常开发中数据集合详解
ASP.NET|日常开发中数据集合详解 前言一、数组(Array)1.1 定义和基本概念1.2 数组的操作 二、列表(List<T>)2.1 特点和优势2.2 常用操作 三、字典(Dictionary<K, V>)3.1 概念和用途…...

Pytest-Bdd vs Behave:选择最适合的 Python BDD 框架
Pytest-Bdd vs Behave:选择最适合的 Python BDD 框架 Pytest BDD vs Behave:选择最适合的 Python BDD 框架BDD 介绍Python BDD 框架列表Python BehavePytest BDDPytest BDD vs Behave:关键区别Pytest BDD vs Behave:最佳应用场景结…...

Unity3D Shader变体自定义组合压缩方案详解
前言 在Unity3D中,Shader变体(Shader Variants)是指根据不同条件生成的Shader版本。这些条件可以包括材质属性、光照模型、阴影选项、渲染队列、纹理类型等。Shader变体允许开发者为同一Shader提供多种实现方式,以满足不同的渲染…...

QT使用promoted后样式(setStyleSheet)不生效问题解决
1.理解promoted(提升)在 Qt 中的概念 在 Qt Designer 中,“提升(Promoted)” 是一种机制,它允许你使用自定义的部件类来替代标准的 Qt 部件类。这在你已经创建了一个从标准 Qt 部件(如QListWid…...

Vue3有哪些好用的处理大数据量虚拟表格组件呢?
在 Vue 3 中,处理大数据量的虚拟表格(Virtual Table)通常需要一个专门的组件或库来优化渲染性能,避免一次性渲染过多的 DOM 元素。以下是一些常用的虚拟表格组件,它们可以帮助你有效处理大数据量: 1. Vue …...

Java学习教程,从入门到精通,Java LinkedList(链表)语法知识点及案例代码(62)
Java LinkedList(链表)语法知识点及案例代码 一、LinkedList概述 LinkedList是Java集合框架中的一个类,位于java.util包中。它实现了List、Deque、Queue等接口,提供了链表数据结构的实现。链表是一种线性数据结构,其…...

设计模式——Singleton(单例)设计模式
摘要 本文介绍了单例设计模式的概念、实现和应用场景。单例模式确保某个类只有一个实例,节省资源并提供全局访问点。文章详细解释了单例模式的实现要素,包括私有构造方法、静态实例和公共静态方法,并探讨了其在数据库连接池、日志记录器和配…...

深入理解 CSS 文本换行: overflow-wrap 和 word-break
前言 正常情况下,在固定宽度的盒子中的中文会自动换行。但是,当遇到非常长的英文单词或者很长的 URL 时,文本可能就不会自动换行,而会溢出所在容器。幸运的是,CSS 为我们提供了一些和文本换行相关的属性;今…...

Java-27 深入浅出 Spring - 实现简易Ioc-03 在上节的业务下手动实现IoC
点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatisÿ…...

kubernetes学习-使用metrics-server监控集群资源和查看日志
kubernetes学习-使用metrics-server监控集群资源和查看日志 一 、简介二、应用场景三、部署四、查看日志 一 、简介 Metrics Server 是一个用于 Kubernetes 集群的监控工具,它用于收集、存储和提供关于集群中各种资源的度量数据。Metrics Server 是 Kubernetes 中一…...

解决 Git Permission denied 问题
前言 push项目时出现gitgithub.com: Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.出现这个问题表示你在尝试将本地代码推送到GitHub时,没有提供…...

CCNP_SEC_ASA 第三天作业
实验需求: ASA 使用列表放行 Outside 路由器到 DMZ 路由器的 WWW 流量并拒绝 Telnet 流量,当放行和拒绝流量匹配后产生日志通告。 提示:需要使能 ASA的日志功能和 DMZ路由器的 HTTP功能。 设备配置: ##此处展示各设备的配置&am…...

TypeError: Cannot read properties of null (reading ‘ce‘)
vue项目本地跑不起来,但是build之后能运行,本地报错 是因为你的vue版本不对,你的package可能是这样写的 这个表示你允许你的npm安装vue3的任意版本,但是build是按照这个版本来的,所以build之后能运行,本地运…...

AdminJS - 集成 MySQL 的现代化管理面板开发指南
AdminJS - 集成 MySQL 的现代化管理面板开发指南 MySQL 集成配置 首先需要安装必要的依赖: npm install adminjs adminjs/express express npm install adminjs/sequelize sequelize mysql2基础配置示例 const AdminJS require(adminjs) const AdminJSExpress …...

上传文件(vue3)
使用el-upload 先上传到文件服务器,生成url 然后点击确定按钮: 保存数据 <template><el-dialog top"48px" width"500" title"新增协议" :modelValue"visible" close"handleClose()">…...

【Win10 环境vscode配置boost】
文章目录 Boost exe版本windows环境安装vscode配置安装测试总结 Boost exe版本windows环境安装 这里不介绍boost源码安装,请自行网络搜索。本文要介绍的是window下单c文件(cpp),调用boost库的执行配置。不涉及多文件。 安装文件下…...

中间件 redis安装
redis官网地址:Redis - The Real-time Data Platform 环境 CentOS Linux release 7.9.2009 (Core) java version "17.0.12" 2024-07-16 LTS 1、通过压缩包安装redis 1,远程下载redis压缩包,或去官网下载:Downloads …...

[java] 简单的熔断器scala语言案例
failureRateInterval时间内如果addEx(错误)达到 maxFailuresPerInterval 次数,则fused方法返回true,表示触发熔断,进入冷却期coolingInterval,冷却期内fused方法返回true,冷却期过后进入下一个错误统计周期。 scala语言完成 imp…...

【java】序列化的种类和使用场景
文章目录 序列化概述什么是序列化?序列化的作用 Java内置序列化java.io.Serializable接口使用ObjectOutputStream和ObjectInputStream优缺点分析 自定义序列化实现Externalizable接口自定义序列化方法适用场景 第三方序列化框架KryoProtobuf (Google Protocol Buffe…...

Qt5与Qt6中的高DPI缩放属性解析
在Qt5中,高DPI缩放默认是禁用的。为了启用它,开发者需要设置Qt::AA_EnableHighDpiScaling应用程序属性。然而,在Qt6中,高DPI缩放默认是启用的,并且不能被禁用。这种变化使得开发者在处理高分辨率屏幕时更加方便&#x…...

Mac使用总结
Mac 常用快捷键 复制:Cmdc粘贴:Cmdv只粘贴文档: ShiftCmdv行首: Cmd<行尾:Cmd>鼠标处选中到行首:ShiftCmd<鼠标处选中到行尾:ShiftCmd>选中整行:上面两个命令组合鼠标处…...

【日期规则】EXCEl 自定义日期匹配规则,学习基础知识,自由匹配场景
excel 新建规则工具路径:开始 - 条件格式 - 新建规则 B$1TODAY() 注意:新建规则后,要点击 条件格式 - 管理规则 - 应用于 要选择规则应用范围 使用场景: excel 做进度管理当中可以查看当天的情况;每周的学习规划 或…...

苹果电脑可以安装windows操作系统吗?Mac OS X/OS X/macOS傻傻分不清?macOS系统的Java支持?什么是macOS的五大API法王?
苹果电脑可以安装windows操作系统吗? 先抛开虚拟机安装,苹果电脑可以安装Windows操作系统。苹果公司提供了一个名为Boot Camp的软件,它允许用户在Mac电脑上安装Windows操作系统。通过Boot Camp,用户可以在启动电脑时选择是要进入macOS还是Wi…...

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息
🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列文章目录 第一章 芋…...

物理机内网穿透
前言: 本文主要讲述如何使用内网穿透以及其安全性。 将带领大家在公网上搭建几个常用靶场。 一,什么是内网穿透。 大多数情况下,我们的个人电脑都处于内网,即没有可公开访问的独立 IP 地址,因此其他内网用户找不到…...

Vue 3: 通过图片链接获取图片颜色,间接设置背景颜色
在现代Web开发中,动态获取和处理图像数据是一个常见的需求。例如,你可能希望自动提取一张图片的主色调,以便根据这些颜色进行UI主题调整或其他视觉效果的处理。本文将介绍如何在Vue 3项目中,通过一个图片链接获取图片的颜色信息。…...

opencv-python的简单练习
题目1.读取一张彩色图像并将其转换为灰度图。 import cv2 # 读取图片文件 img cv2.imread(./1.png)# 将原图灰度化 img_gray cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 输出图片 cv2.imshow(img,img) cv2.imshow(img_g,img_gray) # 进行阻塞 cv2.waitKey(0) 题目2:…...

如何使用生成式AI实现跨领域内容生成
文章目录 引言生成式AI的基本概念定义与分类技术发展现状 跨领域内容生成的技术实现数据准备模型选择与设计训练策略 应用案例分析教育培训新闻媒体文化创意产业 实践建议确定明确的目标构建合适的团队持续迭代改进遵守法律法规 结论 引言 在当今数字化时代,信息的…...

【Linux】socket编程1
socket编程1 1. 网络字节序2. ip地址转换函数3. sockaddr数据结构 1. 网络字节序 多字节数据有大端和小端之分,网络数据流采用大端字节序,如果主机采用的是小端字节序,那么需要转换。 大端:低地址存高字节,高地址存低…...

Linux文件属性 --- 七种文件类型---文件.目录、软硬链接、字符设备文件
目录 七种文件类型 1、普通文件和目录 2、链接文件 2.1硬链接 2.2软链接 3、字符设备文件 一、七种文件类型 Linux的文件属性中一共有以下七种类型 : 符号类型含义解释-普通文件纯文本文件(ASCII)和二进制文件(binaryÿ…...