C# 数据结构 - 1-1 Array 数组

常用的主要有八大类型:1.数组(Array)2.栈(Stack)3.链表(Linked List)4.图(Graph)5.散列表(哈希表)(Hash)6.队列(Queue)7.树(Tree)8.堆(Heap)

在.NET中数组是一个抽象类继承了ICloneable, IList, IStructuralComparable, IStructuralEquatable 四个接口。

public abstract class Array : ICloneable, IList, IStructuralComparable, IStructuralEquatable

1、ICloneable: 定义Clone方法接口,创建一个新对象,该对象是实例化对象的副本。此对象可以是深度拷贝或浅拷贝取决于克隆的实现。默认值克隆的对象支持执行浅层复制。

2、IList:IList是对象的有序集合。确切的顺序取决于列表的实现,范围从排序顺序到插入顺序

(1) 、索引器

Object this[int index] {get; set;} Item属性提供了读取和编辑列表中条目的方法

索引器具体实现可阅读官网链接:

Using Indexers - C# Programming Guide | Microsoft Docs

(2) 、数组操作方法和属性

//将项目添加到列表中。列表中的确切位置为
//依赖于实现,因此虽然ArrayList可能总是插入
//在最后一个可用的位置,SortedList很可能不会。
//返回值是新元素插入的位置。
int Add(Object value);
// 返回列表是否包含特定项。
bool Contains(Object value);
// 从列表中删除所有项目。
void Clear();
//获取一个值,该值指示 IList 是否为只读。
bool IsReadOnly { get; }
// 获取一个值,该值指示 Array 是否具有固定大小。
// 对于所有数组,此属性始终为 true。
bool IsFixedSize{ get;}
//返回列表中特定项的索引。
//如果项目不在列表中,则返回-1。
int IndexOf(Object value);
//从列表中删除项目。在位置索引处向列表中插入值。
//索引必须为非负且小于或等于列表中的元素数。
//如果索引等于数字,则将值追加到末尾。
void Insert(int index, Object value);
// 从列表中删除项目。
void Remove(Object value);
// 删除位置索引处的项目。
void RemoveAt(int index);

ICollection:同时IList继承ICollection接口

//CopyTo将集合复制到数组中,从特定索引到数组中。
void CopyTo(Array array, int index);
//集合中的项目数。
int Count{ get; }
//SyncRoot将返回用于同步的对象
Object SyncRoot{ get; }
//此集合是否已同步(即线程安全)?
bool IsSynchronized{ get; }

IEnumerable:同时ICollection继承IEnumerable接口

如果需要支持VB的foreach语义,请实现此接口。此外,支持枚举器的COM类也将实现此接口 IEnumerator GetEnumerator()所有枚举器的基本接口,提供了一种简单的方法,对集合进行迭代。 bool MoveNext(); Object Current { get; } void Reset();

3、IStructuralComparable: 支持集合对象的结构化比较.

Int32 CompareTo(Object other, IComparer comparer);

4、IStructuralEquatable:定义用于支持比较对象是否在结构上相等的方法。

Boolean Equals(Object other, IEqualityComparer comparer);
int GetHashCode(IEqualityComparer comparer);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值