-1

我一直在使用此代码来尝试修改将写入文件的一些数据,但无论我做什么,即使直接为其分配空字节,它也不会改变。我试图从一个单独的类访问字典条目,而不是生成它的类。

Buffer.BlockCopy(
    pio.GetBuffer(), 
    0, 
    Wat.SettingEntryList[0x63E83FFF].Data, 
    0,     
    Wat.SettingEntryList[0x63E83FFF].Data.Length);

Buffer.BlockCopy(
    pio.GetBuffer(), 
    Wat.SettingEntryList[0x63E83FFF].Data.Length, 
    Wat.SettingEntryList[0x63E83FFE].Data, 
    0, 
    Wat.SettingEntryList[0x63E83FFE].Data.Length);

这是类中的变量,以及我如何初始化字典:

public class SettingEntry
{
    public byte[] Data { get; set; }
}

公共词典 SettingEntryList = new Dictionary();

将数据写入文件时,我会像这样遍历每个键:

foreach (KeyValuePair<int, SettingEntry> SE in SettingEntryList)
{
    pio.WriteBytes(SE.Value.Data);
}

我已经通过并调试了。一旦我确定密钥存在并且全部存在,我就使用了这段代码,当我运行时,应用程序一直在循环中,直到我退出:

while (GPD.SettingEntryList[0x63E83FFF].Data != new byte[GPD.SettingEntryList[0x63E83FFF].Data.Length])
GPD.SettingEntryList[0x63E83FFF].Data = new byte[GPD.SettingEntryList[0x63E83FFF].Data.Length];
4

1 回答 1

0

字典不是只读的。

您不是将字节写入字典,而是写入字典中值内的 Data 属性。

如果您真的想覆盖字典条目,请使用 -

foreach (KeyValuePair<int, SettingEntry> entry in SettingEntryList)
{
    var val = new SettingsEntry() { Data = new DataType() };
    pio.WriteBytes(val.Data);
    entry.Value = val;
}
于 2013-05-18T16:16:42.353 回答