提问人:iiiiiiiix 提问时间:11/15/2023 更新时间:11/15/2023 访问量:54
如何使用新值更新数组?C#
how can i update an array with new values? C#
问:
主要问题是我怎样才能更新数组中的值?比如我只得到 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);
答:
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);
}
评论