C# C:索引超出范围,必须为非负数且小于集合的大小

C# C:索引超出范围,必须为非负数且小于集合的大小,c#,list,collections,click,file.readalllines,C#,List,Collections,Click,File.readalllines,我做了下面的编程。运行应用程序时显示错误消息:索引超出范围。必须为非负数且小于集合的大小 编辑: 你能帮帮我吗? 提前谢谢 问候您。如果您看到错误消息,它实际上会准确地告诉您发生了什么,您只需要能够说这种语言。索引超出范围意味着您有N个项目,并且您尝试获取N+1个项目。换句话说,您正试图获取一些不存在的东西,可能是由于程序中的错误逻辑,但也可能是您希望有N+1项,但没有 捕获此异常的最佳方法是使用调试器,首先找出要在哪一行上获取异常。在ForEach Verknüpfung.AddRange的第

我做了下面的编程。运行应用程序时显示错误消息:索引超出范围。必须为非负数且小于集合的大小

编辑:

你能帮帮我吗? 提前谢谢


问候您。

如果您看到错误消息,它实际上会准确地告诉您发生了什么,您只需要能够说这种语言。索引超出范围意味着您有N个项目,并且您尝试获取N+1个项目。换句话说,您正试图获取一些不存在的东西,可能是由于程序中的错误逻辑,但也可能是您希望有N+1项,但没有

捕获此异常的最佳方法是使用调试器,首先找出要在哪一行上获取异常。在ForEach Verknüpfung.AddRange的第一行上放置断点将使您能够调试它

要消除,您需要 1修复您的输入文件或 2解决您的逻辑错误 因此,您没有试图读取比数组中存在的项更多的项。

请查看行:

Verknüpfung.AddRange(File.ReadAllLines(Datei, Encoding.UTF8));

Verknüpfung[1+i]比列表中的项目数高一个

我的增量似乎比列表填充的速度快

试着改变

Shortcut.Click += delegate { Process.Start(Verknüpfung[1 + i]); };


你哪里也查不到我的名字谢谢。但我为什么要这么做?在哪里?我不知道,因为你做错了,所以我没有费心阅读你的代码。@Shai告诉某人他们做错了,这几乎和发布一个问题说它坏了,修复它一样有用。你怎么能说它全错了,连你都没有好好读一遍呢?如果这一切都是错误的,那么为什么不提供建议,这样他就可以学会修复它,学会正确地处理它呢?Verknüpfung.Count是14。这是我想使用的行数。Verknüpfung[1+i]需要从第2行开始,然后获得2行的内容。除非我误解了Verknüpfung是一个新的空列表。它没有2号线可供启动。Verknüpfung[1+i]是从0开始的数组编号。好的,Shortcut.Header=Verknüpfung[0+i];作品它将标题设置为已创建的菜单。我想做的是在每一行设置一个点击事件。第0行:你好;第1行:运行网站;第2行:世界;第3行:运行网站。。。在第一个循环中,i=0,所以当您执行Shortcut.Header=Verknüpfung[0+i];0+i仍然是0,这将起作用。如果你把手表放在Verknüpfung上,当程序中断时检查它,你可以检查项目中有多少数组。异常告诉我,我的列表中有14个元素。这是正确的元素数。
Shortcut.Click += delegate { Process.Start(Verknüpfung[1 + i]); };
Shortcut.Click += delegate { Process.Start(Verknüpfung[1 + i]); };
Shortcut.Click += delegate { Process.Start(Verknüpfung[0 + i]); };