为什么这段代码只返回字典中的最后一个对象?

本文关键字:字典 最后 一个对象 返回 段代码 代码 为什么 | 更新日期: 2023-09-27 18:19:17

我已经创建了一个包含几个项目的类。并从中创建一个字典对象值。当我在调试模式下查看它时,向字典添加项目似乎工作正常。然而,当我试图检索对象时,我只得到字典中的最后一个对象。但我能找回所有的钥匙我是不是漏掉了一些简单的步骤?

public class Block 
{
    public int blockID16 { get; set; }
    public int blockID {get; set;}
    public string blockName {get; set;}
    public int instance {get;set;}
}
// init object and dictionary
Block block = new Block();
Dictionary<int, Block> blockDict = new Dictionary<int, Block>();
// read an xml file and write to the dictionary   
blockDict.Add(block.blockID16, block);
// I then return the dictionary from a called method below and read it.
Dictionary<int, Block> blockDict = new Dictionary<int, Block>();
blockDict = XMLreader.Reader();
Block block1 = new Block();
foreach(KeyValuePair<int, Block> entry in blockDict)
{
    block1.blockID16 = entry.Value.blockID16;
    block1.blockName=entry.Value.blockName;
    block1.instance = entry.Value.instance;
    block1.blockID = entry.Value.blockID;
    keyValue = entry.Key;
}

为什么这段代码只返回字典中的最后一个对象?

是的,Chris,我确实一遍又一遍地使用这个对象而没有重新实例化它。谢谢,我还在学习,已经编程只有几个星期,混淆了对象引用与变量值。现在可以了。这只是一个测试,帮助我学习如何在进行更大的项目之前将对象添加到字典中。谢谢所有人。