指数超出范围。 必须是非负的且小于集合的大小?
我这样做很简单,我得到这个错误。 当我将TRUE更改为FALSE时它不会给出错误,但测试真正的错误…但我需要通过测试,我不明白..有人可以帮忙吗? C#visual studio 2010 NUnit
[Test] public void prueba1() { List lista1 = new List(); lista1.Add(1); lista1.Add(2); lista1.Add(3); for (int i = 0; i < lista1.Count; i++) { Console.WriteLine(lista1[i]); Assert.True(lista1[i]<lista1[i+1]); }
列表中的有效索引是0到2. lista1.Count
将是3,因此i
从0变为2.当i
为2时,您尝试访问lista1[i+1]
,这超出了范围。
你的清单是[1,2,3]
在每次迭代中,都会检查以下语句。
1 <2
2 <3
3 <?
在Assert.True和Assert.False中,如果检查的条件与函数调用不同,则抛出AssertFailedException错误。(Assert.True需要为True)
Assert.True(1 <2)有效,
Assert.True(2 <3)有效,Assert.True(3 <?) - 将发生Out of Bounds异常。
Assert.False(1 <2) - 将发生AssertFailedException。
i+1
是错误的地方。 更改。 为什么?
你的索引应该从0开始直到2,但是错误出现在最后一个索引中,因为它试图搜索i + 1
索引,这意味着它正在搜索lista1[3]
,当索引从0开始并且直到1时它不存在少于收集的长度。
- 如何在C#中捕获windows键,alt + tab,ctrl + alt + delete?
- 极低的FPS,我应该使用什么样的分析应用程序来查找性能问题?
- WP7中的可滚动TextBox(ala Skype和Facebook)
- 根据请求修改请求标头C#HttpClient PCL
- 需要我的web api 2控制器的路由
- 在没有Microsoft.Office.Interop的情况下,将.NET doc和docx格式转换为.NET Core中的PDF
- InvalidOperationException:参数对象’Scratch’的类型不是原始的
- 如何使WebBrowser等到它完全加载?
- ASP.NET MVC:以编程方式在静态内容上设置HTTP标头