我的Windows窗体应用程序中有一个奇怪的错误,我得到:
指数超出范围。必须是非负数且小于集合的大小。
代码byte listval = list1[i]
。 list1
的长度为18,在Autos中,它显示list1[i]
为正确的值,但在代码中存在错误。这是代码错误还是只是视觉工作室的故障?
static class Class1
{
static List<byte> list1 = new List<byte>();
public static void Start()
{
Thread t = new Thread(new ThreadStart(Process)) { IsBackground = true };
t.Start();
}
static void Action()
{
byte[] array1;
while(true) {
while(list1.Count == 0) {}
array1 = new byte[list1.Count];
for (int i = 0; i < list1.Count; ++i)
{
byte listval = list1[i];
array1[i] = listval;
}
}
}
public static void Add(byte[] data)
{
list1.AddRange(data);
}
}
编辑 通过将字节listval = list1 [i]更改为byte listval = list1.ToList()[i];
来修复它