社区
C#
帖子详情
C#中有没有整数的集合类
runrunrun
2003-01-16 08:15:49
我需要用到一个整数的集合类,发现只能用到框架提供的 ArrayList 类。
但用到这个类有两个问题:
1. 由于ArrayList保存的实际是object类型,因此所有的整数被装进去时,
都要先装箱,取出来时再拆箱。 效率上可想而知有多低
2. 没有了类型检查。任何对象都能放到这个集合中。
有点怀念C++中的模板,觉得C#中去除了模板是一处败笔,毕竟模板是基于
语言而不是基于平台的,加上了模板并不会影响.net平台的通用性,
不知大家有什么看法
...全文
104
11
打赏
收藏
C#中有没有整数的集合类
我需要用到一个整数的集合类,发现只能用到框架提供的 ArrayList 类。 但用到这个类有两个问题: 1. 由于ArrayList保存的实际是object类型,因此所有的整数被装进去时, 都要先装箱,取出来时再拆箱。 效率上可想而知有多低 2. 没有了类型检查。任何对象都能放到这个集合中。 有点怀念C++中的模板,觉得C#中去除了模板是一处败笔,毕竟模板是基于 语言而不是基于平台的,加上了模板并不会影响.net平台的通用性, 不知大家有什么看法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yarshray
2003-01-19
打赏
举报
回复
>>1. 由于ArrayList保存的实际是object类型,因此所有的整数被装进去时,
都要先装箱,取出来时再拆箱。 效率上可想而知有多低
我是这样理解的,因为C#中没有指针(unsafe除外).必须要用引用类型,所以
box和unbox是必然的
>> 2. 没有了类型检查。任何对象都能放到这个集合中。
这不就实现了类似与C++中template的功能(是功能上的,不是实质上的)
当然,下一个版本据说会加入模版.
runrunrun
2003-01-19
打赏
举报
回复
to windyyang(风萧萧) :
int[] a; 中的 a 能当集合类吗?
那我需要的两个集合操作 add(int) 和 bool find(int) 不知a 能否提供.
to ssdjmcj8048:
你指的是物理结构,而我需要的逻辑结构. 也许你还没有明白两者的区别.
在数据结构中,我们可以把一个逻辑上的链表存储在一个数组中,也可以把
一个逻辑上的数组放到一个物理上的链表中.
还是TheAres(班门斧)讲得中肯一点,也许我们只有等待以后的版本了.
ssdjmcj8048
2003-01-19
打赏
举报
回复
ArrayList:
[n个元素]->[n个元素]->[n个元素]->...
每[n个元素]是一个数组。但实际上整体是一个链表结构
Lostinet
2003-01-19
打赏
举报
回复
倒....ArrayList是链表?
ArrayList是IList的实现。用Array做前缀,就已经告诉我们它是用Array来储存元素的了。
..
windyyang
2003-01-19
打赏
举报
回复
见:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemarrayclasstopic.htm
windyyang
2003-01-19
打赏
举报
回复
a其实就是使用类Array定义的
windyyang
2003-01-19
打赏
举报
回复
如果你要整形集合,可以这样定义:
int[] a;
a就可以当一个集合操作!
idiotzeng
2003-01-18
打赏
举报
回复
斑竹以前教鱼游泳的:)
ssdjmcj8048
2003-01-18
打赏
举报
回复
你要的集合类,在历史上就是不存在的,将来也是不会存在的(现有的编程结构)。
数据结构讲得很清楚,要么数组,要么链表,这是两个基本的数据存储方式,两个相矛盾的存储方式。
ArrayList实际上是一个链表,奇特的链表。ArrayList是这样工作的,初识哈是制定一个基本大小,默认是1000,也就说ArrayList是1000个位一组的链表而已。
runrunrun
2003-01-16
打赏
举报
回复
谢谢,我看看先
TheAres
2003-01-16
打赏
举报
回复
To 一条不会游泳の鱼:
很多集合类啊.
NET 框架在 System.Collections 命名空间中提供了若干集合类型的类。
ms-help://MS.VSCC/MS.MSDNVS.2052/Vbcon/html/vaconCreatingYourOwnCollectionClass.htm
你可以自己写一个,上面的连接中就有演示.
>>觉得C#中去除了模板是一处败笔
NET会在今后的版本中支持,看看这个
http://research.microsoft.com/projects/clrgen/
C#
数组和
集合类
详解
数组是一种指定长度和数据类型的对象,在实际应用
中
有一定的局限性。 集合正是为这种局限性而生的,集合的长度能根据需要更改,也允许存放任何数据类型的值。
C#
非泛型
集合类
与泛型
集合类
的区别
C#
泛型集合之非泛型
集合类
与泛型
集合类
的对应: ArrayList对应List HashTable对应Dictionary Queue对应Queue Stack对应Stack SortedList对应SortedList
C#
集合类
Array Arraylist List Hashtable Dictionary Stack Queue 1.数组是固定大小的,不能伸缩。
C#
泛型
集合类
C#
提供了许多常用的
集合类
,比较常用的有以下几个: List:可以像数组一样按索引访问的列表,也提供其他的方法进行搜索和排序。 创建List时无需指定大小,它随着元素的添加,可以自动增加,保证能够容下添加的元素。 ———————————————————————————————————————- 方法示例: using System; using System.Collections.Ge
C#
的6种常用
集合类
大比拼
C#
的6种常用
集合类
大比拼【月儿原创】
C#
的6种常用
集合类
大比拼作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.27 说明:MSDN没有说出几种
集合类
其间的区别,当然欲知更多细节可参考MSDN。一.先来说说数组的不足(也可以说集合与数组的区别):1.数组是固定大小的,不能伸缩。虽然System.Arr
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章