当索引处于边界窗口窗体中时,列表的界限超出范围

时间:2013-12-10 03:14:59

标签: c# .net winforms

我的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];

来修复它

0 个答案:

没有答案