C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展
在游戏开发的时候, 经常需要创建和管理相关对象组, 比如服务器列表, 商城物品列表等等. 在从服务器拿到这些数据的时候, 首先需要将他们存放到一个数据集合里面, 然后对集合中的数据循环遍历进行处理.
之前学过的数据集合有数组, 可以用数组来存储这些数据. 但是采用数组作为数据集合是由弊端的, 比如数组初始化的时要指定长度, 长度是固定的, 不利于数据的动态扩展和删除. 今天学习一种专门用来数据存储和检索的类 -- 集合.
一.集合
在C#中, 集合是专门用于数据存储和检索的类. 与数组不同, 集合提供了一种灵活的数据处理方法, 处理的对象组可根据程序更改的需要动态的增长和收缩. 对于数据快速检索, 集合还可以为对象分配一个唯一的" 键", 通过此 "键" 可以直接将数据从集合中取出来.
集合是类, 因此必须声明新集合后, 才能往里面进行数据存储.
1.1 集合类型
集合分为两种类型: 非泛型集合与泛型集合.
使用非泛型集合需引入:System.Collections 命名空间。
使用泛型集合需引入:System.Collections.Generic 命名空间。
非泛型集合
泛型集合
1.2 动态数组 -- ArrayList
ArrayList 是一个特殊的数组, 可以通过添加和删除元素动态改变数组长度。它是一个类, 所以需要先创建对象, 通过对象来访问成员;
ArrayList
方法:
ArrayList 的方法有很多,有些方法还有多个重载。 不仅是它,其他的集合类如 Stack, Queue, List等等也是如此, 所以最好是记住一些平时常用的,其他的方法都可以现查现用。
在 Vs 中将光标放在你想要查找的类上, 按 F12 就会跳转到该类的使用文档, 里面对该类的所有方法都有非常详细的描述。掌握这个技巧就可以哪里不会点哪里了;
例如 ArrayList
对集合的操作重点就是会调用各种方法, 所以今天的笔记就是整理一下这些集合类的常用方法, 掌握的话还是得多多动手敲代码。
链表
栈(先进后出)
队列 (先进先出)
字典 (键值对)
二.索引器
索引器允许类或结构的实例就像数组一样可以通过下标索引。 它类似于属性,不同之处在于它们的取值函数采用参数。 C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。
语法
[访问修饰符]
练习: 定义一个Person类, 实现索引
// 定义一个Person 类
三.扩展
扩展, 顾名思义是给已经存在的规则再添加上你想要加的规则, 例如 :对一个 int类型的数组, 你想要让它自己实现排序的方法, 就可以给它加个扩展.
// 随便定义一个静态类, 在这个类里面定义扩展
=======================================================
思维导图
C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展相关推荐
- java中集合的模型特点_Java 学习笔记(十四)集合
集合 在开发的时候,如果需要存储多个数据,可以使用数组,不过数据是固定长度的,如果需要存储可变长度的多个数据,可以使用集合.集合提供存储空间可变的存储类型,存储的容量可以实时改变 集合分类 Colle ...
- Python学习笔记:集合(set)
Python学习笔记:集合(set) 1.集合概念 集合是互异元素的无序集合.类似于只有键没有值的字典. 2.创建集合 有两种方法创建集合:一个是利用set函数,一个是利用花括号创建集合字面量. 3. ...
- Python中索引的学习笔记
1 前言 今天在学习FaceBoxes- 看到一个比较奇怪的代码,"order = scores.argsort()[::-1][:args.top_k]",不太懂这个" ...
- 《深度学习笔记》——listnumpy索引操作的学习笔记
1 致谢 感谢网友粗面鱼丸提供的资料, 原文链接:https://www.cnblogs.com/subic/p/8710946.html 2 初始python中的索引操作 2.1 单次索引x[0:2 ...
- MongoDB学习笔记~对集合属性的操作
$unset清除元素 请注意在单个数组元素上使用$unset的结果可能与你设想的不一样.其结果只是将元素的值设置为null,而非删除整个元素.要想彻底删除某个数组元素,可以用$pull 和$pop操作 ...
- NetLogo学习笔记3 —— 集合操作与生命游戏
NetLogo学习笔记3 -- 集合操作与生命游戏 (这篇新知识点略多) 上一篇文章我们了解NetLogo模型的基本要素,学习了函数定义与ask语法.并编写了我们的第一个程序! 这一次,我们来编写一个 ...
- SQL Server 2008中SQL应用系列及BI学习笔记系列--目录索引 @邀月
邀月 的数据库学习 http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html SQL Server 2008中SQL应用系列及BI ...
- 求差集(C语言)两个集合的差集定义如下:集合A、B的差集,由所有属于A但不属于B的元素构成。输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
[问题描述] 两个集合的差集定义如下: 集合A.B的差集,由所有属于A但不属于B的元素构成. 输入两个集合A.B,每个集合中元素都是自然数.求集合A.B的差集. [输入形式] 从标准输入先输入集合元素 ...
- python分组求和_Python学习笔记之pandas索引列、过滤、分组、求和功能示例
本文实例讲述了Python学习笔记之pandas索引列.过滤.分组.求和功能.分享给大家供大家参考,具体如下: 前面我们已经把519961(基金编码)这种基金的历史净值明细表html内容抓取到了本地, ...
最新文章
- 如何让您的php也支持pthreads多线程
- AI能写出靠谱医学报告了,CVPR2021收录 | 腾讯医典出品
- php如果字符串有1 3 5,Day3-php 字符串1
- 渐进式web应用程序_如何在渐进式Web应用程序中添加到主屏幕
- 想在边缘运行计算机视觉程序?先来迎接挑战!
- Identity Server4学习系列四之用户名密码获得访问令牌
- fcm脑图像分割matlab,MATLAB程序:用FCM分割脑图像
- 二叉搜索树的第k个节点
- 用户计算机证书在哪里找,用户、计算机或服务的“证书”管理单元 怎么进?...
- 10分钟就能学会,Linux操作系统21个shell常用命令
- 高精度三维扫描仪用于运动鞋逆向建模
- 曲线运动与万有引力公式_高一物理曲线运动万有引力试题
- 【自动驾驶传感器融合系列】01自动驾驶中常用的传感器
- php 计费系统设计,仓储系统之计费模块设计
- cisco Switching-vlan
- CS61A fa2021 Composing Programs 2.8 Efficiency 效率
- 中国大学MOOC C语言程序设计(大连理工大学) 课后编程题 第十二周题解(个人向仅供参考)
- 计算机博士英文复试自我介绍,博士生复试英文自我介绍
- QQ游戏对对碰辅助程序
- COOX基础培训之PMT