如何使用新值更新数组?C#

how can i update an array with new values? C#

提问人:iiiiiiiix 提问时间:11/15/2023 更新时间:11/15/2023 访问量:54

问:

主要问题是我怎样才能更新数组中的值?比如我只得到 4 个字节而不是全部,因为它的整数。

byte[] iarray = File.ReadAllBytes(path);
uint t;


for (int i = 61; i < 3440; i++)
{
    i+=3;
    t = BitConverter.ToUInt32(iarray,i);
  
    
    if (t > 0)
    {
        t += 96;
    }
    iarray = BitConverter.GetBytes(t);
}   


    File.WriteAllBytes(path,iarray);
C# 文件 编辑

评论


答:

0赞 Serg 11/15/2023 #1

您正在尝试重写整个数组,而不是更新现有数组中唯一的数据部分(4 个字节)。因此,在获得 的最终值后,您可以执行以下操作将此新值放回数组中,而不是旧值(因此,使用相同的值“i”作为位置)t

BitConverter.GetBytes(t).CopyTo(iarray, i);
0赞 RandomUser 11/15/2023 #2
public void temp(string path)
  {
     byte[] iarray = File.ReadAllBytes(path);
     uint t;


     for (int i = 61; i < 3440; i+=4)
     {
        t = BitConverter.ToUInt32(iarray, i);


        if (t > 0)
        {
           t += 96;
        }
        var updatedArray = BitConverter.GetBytes(t);
        updatedArray.CopyTo(iarray, i);
     }


     File.WriteAllBytes(path, iarray);
  }