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

时间:2014-08-22 19:44:52

标签: c# object dictionary

我创建了一个包含几个项目的类。并从中创建一个字典对象值。 当我在调试模式下查看它时,添加到字典中的项目似乎工作正常。 然而,当我尝试检索对象时,我只获得字典中的最后一个对象。但我可以检索所有的钥匙。 我在这里错过了一些简单的步骤吗?

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;
}

1 个答案:

答案 0 :(得分:0)

是的克里斯,我确实一遍又一遍地使用这个对象而没有重新实现它。谢谢,我还在学习,并且只编程了几周,并将对象引用与变量值混淆。现在工作正常。这只是一个测试,帮助我在移动到更大的项目之前,如何将对象添加到字典中。谢谢大家。