天天看点

C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展

在游戏开发的时候, 经常需要创建和管理相关对象组, 比如服务器列表, 商城物品列表等等. 在从服务器拿到这些数据的时候, 首先需要将他们存放到一个数据集合里面, 然后对集合中的数据循环遍历进行处理.

之前学过的数据集合有数组, 可以用数组来存储这些数据. 但是采用数组作为数据集合是由弊端的, 比如数组初始化的时要指定长度, 长度是固定的, 不利于数据的动态扩展和删除. 今天学习一种专门用来数据存储和检索的类 -- 集合.

一.集合

在C#中, 集合是专门用于数据存储和检索的类. 与数组不同, 集合提供了一种灵活的数据处理方法, 处理的对象组可根据程序更改的需要动态的增长和收缩. 对于数据快速检索, 集合还可以为对象分配一个唯一的" 键", 通过此 "键" 可以直接将数据从集合中取出来.

集合是类, 因此必须声明新集合后, 才能往里面进行数据存储.

1.1 集合类型

集合分为两种类型: 非泛型集合与泛型集合.

使用非泛型集合需引入:System.Collections 命名空间。

使用泛型集合需引入:System.Collections.Generic 命名空间。

非泛型集合
C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展
泛型集合
C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展
1.2 动态数组 -- ArrayList

ArrayList 是一个特殊的数组, 可以通过添加和删除元素动态改变数组长度。它是一个类, 所以需要先创建对象, 通过对象来访问成员;

ArrayList 
           

方法:

C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展

ArrayList 的方法有很多,有些方法还有多个重载。 不仅是它,其他的集合类如 Stack, Queue, List等等也是如此, 所以最好是记住一些平时常用的,其他的方法都可以现查现用。

在 Vs 中将光标放在你想要查找的类上, 按 F12 就会跳转到该类的使用文档, 里面对该类的所有方法都有非常详细的描述。掌握这个技巧就可以哪里不会点哪里了;

例如 ArrayList

C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展
C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展

对集合的操作重点就是会调用各种方法, 所以今天的笔记就是整理一下这些集合类的常用方法, 掌握的话还是得多多动手敲代码。

链表
C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展
栈(先进后出)
C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展
队列 (先进先出)
C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展
字典 (键值对)
C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展

二.索引器

索引器允许类或结构的实例就像数组一样可以通过下标索引。 它类似于属性,不同之处在于它们的取值函数采用参数。 C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。

语法
[访问修饰符] 
           

练习: 定义一个Person类, 实现索引

// 定义一个Person 类
           

三.扩展

扩展, 顾名思义是给已经存在的规则再添加上你想要加的规则, 例如 :对一个 int类型的数组, 你想要让它自己实现排序的方法, 就可以给它加个扩展.

// 随便定义一个静态类, 在这个类里面定义扩展
           

=======================================================

思维导图

C# list集合 重复元素 索引_C#学习笔记12--集合/索引器/扩展

继续阅读