c# 的ArrayList add的数据都一样?怎么回事

ArrayListzhlist=newArrayList(12);string[]zhanghao=newstring[2];...while(reader.Read()... ArrayList zhlist = new ArrayList(12);
string[] zhanghao = new string[2];
.
.
.
while (reader.Read())
{
zhanghao[0] = reader[1].ToString();
zhanghao[1] = reader[2].ToString();
label.Text+=reader[1].ToString();
zhlist.Add(zhanghao);
}
这样子添加后数组里的数据都是一样的,全部显示最后添加的那一个!可以确定添加的是不同数据。
要怎么改,高手帮忙看一下,谢谢!
展开
 我来答
百度网友d242235
2011-06-19 · TA获得超过2385个赞
知道大有可为答主
回答量:1403
采纳率:84%
帮助的人:843万
展开全部
可看出你面向对象的基础知识不扎实,还没有引用类型与值类型的概念认知。你定义了一个string数组,它是引用类型,所有对它的引用都是调用堆上实际数据的地址,所以你在while里操作的永远都是同一个对象,自然数据都是一样的。把代码改成下面再试试:
while (reader.Read())
{
string[] zhanghao = new string[2];
zhanghao[0] = reader[1].ToString();
zhanghao[1] = reader[2].ToString();
label.Text+=reader[1].ToString();
zhlist.Add(zhanghao);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式