Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “为什么?”;列表<;T>;。插入(索引,T)“;是否添加到列表的末尾而不是索引?_C#_.net_Wpf - Fatal编程技术网

C# “为什么?”;列表<;T>;。插入(索引,T)“;是否添加到列表的末尾而不是索引?

C# “为什么?”;列表<;T>;。插入(索引,T)“;是否添加到列表的末尾而不是索引?,c#,.net,wpf,C#,.net,Wpf,我有一个带滴答功能的计时器: void CollisionTimer_Tick(object sender, EventArgs e) { int j; angle += 10; angle %= 360; int i = angle / 10 - 1; if (i < 0) j = 0; else j =i % 35;

我有一个带滴答功能的计时器:

    void CollisionTimer_Tick(object sender, EventArgs e)
    {
        int j;
        angle += 10;
        angle %= 360;

        int i = angle / 10 - 1;
        if (i < 0)
            j = 0;
        else
            j =i % 35;

        ObstaclePoints.Insert(j, getPoint(angle));
    }
void CollisionTimer\u勾选(对象发送方,事件参数e)
{
int j;
角度+=10;
角度%=360;
int i=角度/10-1;
if(i<0)
j=0;
其他的
j=i%35;
障碍点。插入(j,获取点(角度));
}
理想的效果是当j在0-35之间迭代时,点列表“ObstaclePoints”得到36点

我遇到的问题是,在前36个滴答声之后,j回到0,列表不断增加,我在列表中得到了超过36分。(也就是说,在另外36次滴答声之后,我在列表中得到72分,而不是前36次被覆盖)


为什么会发生这种情况?我如何解决

列表。插入
不会覆盖指定索引处的项目,但会在此位置插入一个项目。使用数组
ObstaclePoints[35]
代替地址,如下代码所示:

ObstaclePoints[j] = getPoint(angle);

这是什么语言?看起来应该是,但我没有看到那个标签。也不是C,被否决了。@iharob-它是C,标签在那里。它是C。。im在visual Studio中使用WPF插入不会覆盖列表中的现有项,它会在位置x添加新项。这也适用于列表。不必是数组。@Clemens另外,在尝试访问项目之前,请记住将项目添加到列表中。@Clemens OK,但如果列表的计数是常量,我更喜欢数组。使用列表,您必须在访问之前首先添加项目,正如Kyle所述。