数组必须指定长度吗?

seaonce 2004-08-23 02:00:58
string[] abc=new string[];
int i;

while(ObjData.Read())
{
abc[i]=ObjData["menuname"].ToString;
i+=1;
}
为什么出是数组出错呢?

如果这样就可以:

string[] abc=new string[10];
...全文
376 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
waximi 2004-08-23
  • 打赏
  • 举报
回复
用ARRAYLIS吧
IList list=new ArrayList();
list.add(ObjData["menuname"].ToString);
如果实在要用READER那就多搜一遍数据库.找到行数
robin0925 2004-08-23
  • 打赏
  • 举报
回复
string[] new 的时候当然要长度的!Arraylist new 的时候就没有必要定长度吧???
阿云ivan 2004-08-23
  • 打赏
  • 举报
回复
C#里也有ArrayList啊
就用这个吧
另外那个i最好也有个初始值0
seaonce 2004-08-23
  • 打赏
  • 举报
回复
是啊”阿猫“说的和书上一样,但长度怎么才能让它和当前数据库中行数一样呢?

回复人: brightheroes(闭关|那一剑的风情) ( ) 信誉:103

ArrayList好像是VB。NET的数组定义方式吧。


WZCNet 2004-08-23
  • 打赏
  • 举报
回复
在定义数组时必须指定长度,楼主用ArrayList吧。
ArrayList aryObj = new ArrayList();
while(ObjData.Read())
{
aryObj.Add(ObjData["menuname"].ToString);
}
waximi 2004-08-23
  • 打赏
  • 举报
回复 1
数组被分配在堆中,因此是引用类型。你不可能访问超出一个数组边界的元素。所以定义数组的时候必须指定长度
Eddie005 2004-08-23
  • 打赏
  • 举报
回复
同意
brightheroes 2004-08-23
  • 打赏
  • 举报
回复
但是有一点不明白,直接用reader不就可以了吗?
为什么一定要用数组来再次存取一下?
brightheroes 2004-08-23
  • 打赏
  • 举报
回复
用ArrayList吧

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧