CSharp中的数组和ArrayList及List
生活随笔
收集整理的這篇文章主要介紹了
CSharp中的数组和ArrayList及List
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C# 中的數(shù)組、ArrayList、List
數(shù)組
數(shù)組被大部分的語言支持,操作都類似。
如
數(shù)組的優(yōu)點(diǎn)在于其是連續(xù)存儲(chǔ)的,所以它的索引速度是非常的快,而且賦值與修改元素也很簡單,訪問快速。
問題: 其插入和刪除操作則很費(fèi)勁,而且在創(chuàng)建時(shí),需要知道其大小。
ArrayList
相對(duì)數(shù)組來說,ArrayList則解決了數(shù)組的問題。可以很靈活地插入和刪除。
ArrayList list = new ArrayList();//新增數(shù)據(jù) list.Add("Java"); list.Add("CSharp");//修改數(shù)據(jù) list[2] = 123456;//移除數(shù)據(jù) list.RemoveAt(0);//插入數(shù)據(jù) list.Insert(0, "hello");可以看到,ArrayList對(duì)數(shù)據(jù)類型并不嚴(yán)格要求。
下面看看ArrayList的定義
[SerializableAttribute] [ComVisibleAttribute(true)] public class ArrayList : IList, ICollection, IEnumerable, ICloneable {// ......private Object[] _items;[ContractPublicPropertyName("Count")]private int _size; } //...可以看到ArrayList中使用object來容納添加的對(duì)象。這里會(huì)有裝箱,拆箱的操作,造成了性能的損失。
PS: ArrayList并不是所有的.network版本中被支持。
List
泛型List
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerableList則避免了ArrayList的對(duì)象裝箱和拆箱的操作
List<int> list = new List<int>();//新增數(shù)據(jù) list.Add(123);//修改數(shù)據(jù) list[0] = 345;//移除數(shù)據(jù) list.RemoveAt(0);總結(jié)
以上是生活随笔為你收集整理的CSharp中的数组和ArrayList及List的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米6不贴膜会刮花吗(小米官方售后服务)
- 下一篇: 删掉被2345篡改的IE起始页