最最基础的问题,ICollection 相关的概念问题
刚刚开始学习C# 看了两天语法的东西 ,了解了十之八九,还有很多东西想要知道,Collection方面就是其中之一,之后还有很多问题,希望大家能够帮助。
问题如下:
比较常用的Collection有哪些?
我现在看了
ArrayList
List <>
SortedList
Hashtable
Dictionary <>
1 请问大家平时用到比较多的还有哪些? 他们都有些什么继承关系(父接口 事先等等的关系表) 或者给我一个类似的关系图链接就好
2 关于Hastable Dictionary SortedList等 我使用Add方法的时候都不能插入键值相同的数据,之后我只能用 var[key]=xxxx来实现这种操作,请问是否有别的方法?我想做的就是往容器插入多组数据,遇到key相同的情况,自动覆盖掉先前的那组数据。
3 2中提到的那些容器,当我想用null作为key的时候 应该怎么做? 有没有哪个容器可以接受null作为key?
4 我要实现集合操作应该选择哪个容器? 就是说我有一组数据,但是其中有些是重复的,我希望放入一个容器,只保留不重复的
5 对于容器的Contains仿佛进行判断是否有该元素的时候,是否只要定义操作符== 的返回值为true,就认为含有该元素呢?
6 这些容器是否是线程安全的?
暂时就这些问题吧 谢谢大家了
------解决方案--------------------1、要熟悉数据结构
2、用封装Add的方法来解决
3、没有试过
4、根据需求选择,当然要加入自己的业务逻辑,不会什么都是现成的。
5、可以看看MSDN中的Contains
6、容器线程安全,但不能保证里面的数据是否线程安全
------解决方案--------------------我指不要key的情况
比如我有一个int[] intArray={1,1,2,2,2,2,2,2,3,4};
我必须用key value的方式来做吗?
能不能存在某个容器XX
xx.AddRange(intArray) 往里面放入{1,3,3,4}
___________________________________________________
没有一个现成的容器实现此功能,需要自己包装一下.你如果不要key,最好去包装ArrayList,去Override它的AddRange 方法.