C# —— IList, ArrayList与List的区别详解
2014-06-30 11:08
295 查看
共同点:
IList, List , ArrayList 通俗一点来讲就是广义的数组,C#里面称之为集合。不同于一般的狭义的数组,它们可以存放任意类型的东西,在申明或者赋值的时候指定。 比如你写了一个类 Cake,然后想有一个结构来存放很多Cake的实例,那就可以用他们。 区别: IList与List 通俗一点讲,只能存放同一类型的元素。 比如声明的时候 声明为List<Cake> cakes=new List<Cake>(); 那么就只能用放cake的实例。 在从cakes这个变量中取出元素的时候,取到的直接就是Cake类型。不需要做强行的转换,所以性能较好。 如果想要让一个‘数组’存放各种类型的实例,比如有Cake,Juice, Bread,那么就用ArrayList ArrayList food=new ArrayList(); 注意这里没有指定它装的是什么类型的元素,所以可以随便装咯~ 当然,好处不能全让你占完了。在‘取’的时候就要麻烦一点了 ArrayList里元素默认是 Object类型的,所以需要强制转换一下,在大数据时性能较差。再来说IList和List的区别: 我的理解是,IList是一个接口,而List是一个确定的类。 接口,当然就需要你去实现它的函数咯,如果你想这些函数有自己的特色,那么就自己写一个类去实现吧! 然后声明的时候:IList<类型> kk=new 你实现的类名<类型>(); 当然你可以写成:IList<类型> kk=new List<类型>(); 相当于List实现了IList (事实上C# API中是这样定义的) 如果你写成 List<类型> kk=new List<类型>(); 那就意味着你的代码,那些操作List的函数不能有丝毫改变,你得按规定办事。写好是什么,你就用什么。 用法: 以上三个集合的用法都很相似,跟Java也很相似 假如有一个 List<Cake> cakes 增、删、改、查的方法:
cakes.Add(Cake t);//增 cakes.Remove(int index);//删 cakes.Remove(Cake t);//删 cakes[]=//修改的数据 //查或者改
注:转载自新浪博客 http://blog.sina.com.cn/s/blog_6cb117430100o0ul.html
相关文章推荐
- C# IList, ArrayList与List的区别详解 & 简单用法举例
- C#中数组、ArrayList和List三者的区别详解
- C# IList, ArrayList与List的区别详解 & 简单用法举例
- C# IList, ArrayList与List的区别详解 & 简单用法举例(转)
- C#中数组、ArrayList和List三者的区别详解及实例
- C# IList, ArrayList与List的区别详解 & 简单用法举例(转)
- C# []、Array、List、ArrayList 区别总结
- C# []、Array、List、ArrayList 区别
- C# IEnumerable<T>、IEnumerator<T>、List<T>、ArrayList、[]数组各各的区别
- C# []、List、Array、ArrayList 区别及应用
- C# []、Array、List、ArrayList 区别简介
- C#集合类详解,Hashtable 和 SortedList 类,Dictionary 和 SortedLi,Array ,ArrayList ,List ,Stack,SortedDictionary ,ListDictionary ,StringDictionary
- C# []、List、Array、ArrayList 区别及应用
- C# IEnumerable<T>、IEnumerator<T>、List<T>、ArrayList、[]数组各各的区别
- c# 数组(Array),ArrayList ,List 的区别与联系
- C# []、Array、List、ArrayList 区别简介
- C#中的[],Array,List<>,ArrayList的区别
- C# []、List、Array、ArrayList 区别及应用
- C# []、List、Array、ArrayList 区别及应用
- C#中Collection,List和ArrayList的区别(转)