Unity学习之C#_如何自己定义一个List集合

本文介绍了如何使用C#创建一个类似于List集合的自定义顺序表。通过理解数据结构、数据元素等相关概念,作者实现了线性表的顺序存储,并提供了包括增删改查在内的基本操作。通过实例代码展示,加深对数组和集合的理解。
摘要由CSDN通过智能技术生成

如何使用C#自己创建一个和List集合功能大致相同的自定义集合

首先在介绍如何自己创建一个集合之前,先介绍几个概念:数据结构、数据(data)、数据元素(Data Element)、数据项(Data Item)、数据对象(Data Object)、数据类型(Data Type)

1、数据结构:数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。 这里的定义来自百度,其实你可以笼统的理解为数据和数据的关系, 根据数据元素之间关系的不同特性,通常由4类基本数据结构:集合结构、线性结构、树形结构、图状结构,而我们今天创建的集合就是属于线性结构,他的本质是一个数组,我们是通过顺序表来实现。

2、数据:这个好理解,就是计算机处理的各种数据,有数值数据:如整数,实数等;有非数值数据:如字符、、图像、声音等

3、数据元素:数据元素是数据的基本单位,在计算机程序中通常被当作整体来处理,可以由若干个数据项构成

4、数据项:数据项是不可分割的、含有独立意义的最小数据

5、数据对象:相同性质的数据元素的集合就是数据对象,例如,整数数据对象就{0,±1,±2,±3}

6、数据类型:数据类型是数据的取值范围和对数据进行操作的总和。数据类型规定了程序中对象的特性。如果:string(字符串类型)、char(字符类型)、int(整数类型)等等

了解了这几个概念之后,今天要做的就是使用线性表中的顺序表来创建一个和List集合功能大致相同的自定义集合。先介绍一下什么是顺序表:在计算机内,保存线性表最简单、最自然的方式,就是把表中的元素一个接一个地放进顺序的存储单元,这就是线性表的顺序存储(Sequence Storage)。线性表的顺序存储是指在内存中用一块地址连续的空间依次存放线性表的数据元素,用这种方式存储的线性表叫顺序表(Sequence List)。

上代码:

一、首先定义一个线性表接口:
前9个抽象函数比较好理解,List集合里也都包含这些方法,但是第10和11个我需要说一下,因为我们的顺序表是通过数组来实现的(其实List集合也是由数组实现的),所以这里的原始容器指的是就是数组

    //线性表接口定义:线性表的实现有 顺序表、单链表{双向链表、循环链表}
    interface IListDs<T>
    {
        int GetLength();//1.求长度
        void Clear();//2.清空操作
        bool IsEmpty();//3.判断线性表是否为空
        void Add(T item);//4.添加数据
        void Insert(T item, int index);//5.插入数据
        T Delete(int index);//6.删除数据
        T GetElement(int index);/7./取数据
        T this[int index] { get; }//8.索引器取数据
        int Locate(T value);//9.按照
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在C#中,可以通过创建一个新的List对象来将一个集合独立出来。可以使用List的构造函数来实现这一点。例如,可以使用以下代码将一个数组转换为一个独立的List对象: string\[\] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu" }; List<string> newList = new List<string>(temArr); 这样,temArr数组中的元素将被复制到newList中,而newList将成为一个独立的List对象,与原始数组没有任何关联。\[1\] 另外,如果想要将一个集合的元素添加到已有的List对象中,可以使用AddRange()方法。例如,可以使用以下代码将一个数组的元素添加到已有的List对象中: string\[\] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu" }; List<string> existingList = new List<string>(); existingList.AddRange(temArr); 这样,temArr数组中的元素将被添加到existingList中,而existingList仍然是一个独立的List对象。\[2\] 总结起来,C#中可以通过构造函数或AddRange()方法将一个集合独立出来,使其成为一个独立的List对象。 #### 引用[.reference_title] - *1* *2* [C#List集合的常用方法](https://blog.csdn.net/SQWH_SSGS/article/details/109329770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Unity学习C#_如何自己定义一个List集合](https://blog.csdn.net/Mars___Z/article/details/89382587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值