为什么List.Add()后的数据都是一样的哪?

qq_32109115 2015-12-08 03:03:25
下面是在Excel表中读取单元格数据的代码:
			// database
Excel.Worksheet workSheet2 = m_workBook.Worksheets.get_Item("database");
if (workSheet2 == null)
{
throw new Exception("WorkBook.WorkSheets.get_Item('database') failed!");
}

for (int row = 2; row < 2+nRow; row++)
{
dynamic dy1 = workSheet2.Cells[row, 1].Value;
dynamic dy2 = workSheet2.Cells[row, 2].Value;
dynamic dy3 = workSheet2.Cells[row, 3].Value;
dynamic dy4 = workSheet2.Cells[row, 4].Value;
dynamic dy5 = workSheet2.Cells[row, 5].Value;

CGuidanceOne gd1 = new CGuidanceOne();
gd1.Title = (dy1 == null) ? "" : dy1.ToString();
gd1.Intro = (dy2 == null) ? "" : dy2.ToString();
gd1.Date = (dy3 == null) ? "" : dy3.ToString();
gd1.Source = (dy4 == null) ? "" : dy4.ToString();
gd1.Src = (dy5 == null) ? "" : dy5.ToString();

m_lstGuidance.Add(gd1);
}

为什么最后m_lstGuidance中的元素的值都跟最后元素的值相同?我是在循环体内new的CGuidanceOne
...全文
305 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuoming120 2015-12-08
  • 打赏
  • 举报
回复
仔细检查一下代码
  • 打赏
  • 举报
回复
将dynamic 改成object试试看呢
  • 打赏
  • 举报
回复
调试看看了,诡异
qq_32109115 2015-12-08
  • 打赏
  • 举报
回复
噢,又仔细看了下,结果是正确的。是页面显示上出的错
qq_32109115 2015-12-08
  • 打赏
  • 举报
回复
噢噢,设断点看了下。前面的代码取值都是正确的,即是更新的数据。 只是在m_lstGuidance.Add(gd1);之后,就变成一样的,真是好奇怪。
  • 打赏
  • 举报
回复
debug吧,看是否取值什么的有问题,或者是不是循环结束之后又做了什么,反正你用的是new,已经否决了同一个对象的问题
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。 Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。   本课程主要讲解以下内容:1. Redis的基本使用2. Redis数据库的数据类型3. Redis数据数据管理4. Redis的主从复制5. Redis数据库的持久性6. Redis的高可靠性和集群7. Redis的优化和性能测试8. Redis服务器的维护和管理9. Redis服务器的常见问题排错 

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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