首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用while循环将类存储在列表中

使用while循环将类存储在列表中
EN

Stack Overflow用户
提问于 2015-03-04 18:15:31
回答 1查看 138关注 0票数 0

我正在将数据读入人员类,然后将人员类存储到集合中。

代码语言:javascript
复制
ObservableCollection<Personnel> Personnels = new ObservableCollection<Personnel>();
Personnel personnel = new Personnel();

...code省略了..。

代码语言:javascript
复制
while (myReader.Read())
{
   personnel.PersonID = myReader.GetInt32(0);
   personnel.PersonNameID = myReader.GetInt32(1);
   personnel.PersonWage = myReader.GetInt32(2);
   personnel.PersonWages = String.Format("{0:N0}", personnel.PersonWage);
   // more personnel. items...
   Personnels.Add(personnel);       }

我的问题是,人事部收集的全部都是只在最后一次读取的人事记录中填写的人事记录。假设100个人类记录在人员集合中,但都具有相同的数据,那就是最后一个人员类读取的数据。

为什么在循环中读取人员集合时没有填充每个不同的人员类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-04 18:16:45

您引用的是同一个对象。将代码更改为:

代码语言:javascript
复制
while (myReader.Read())
{
   personnel = new Personnel();
   personnel.PersonID = myReader.GetInt32(0);
   ...
}

附加信息:

创建类的对象时,分配对象的变量只包含对该内存的引用。通过一个变量所做的更改反映在其他变量中,因为它们都引用了相同的数据。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28861849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档