问题标签 [indexoutofrangeexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - ArgumentOutOfRangeException 和 IndexOutOfRangeException 的性能
我在我的库中添加了一个新类,它将成为公共文档 API 的一部分。底层数据结构是一个原生数组,尽管List<T>
在第一次生成原生数组时使用。
MSDN 表示List<T>
throwsArgumentOutOfRangeException
而不是IndexOutOfRangeException
(在访问本机数组时可以抛出)。
因此,我计划更新我的函数以始终ArgumentOutOfRangeException
在我记录的 API 中保持一致性,如下所示:
我的问题是这样的:
上述源代码是否会产生两个范围检查(我的一个 + 本机数组一个),或者 .NET 编译器是否足够聪明,可以删除这些IndexOutOfRangeException
检查?
c# - c#中的以下数组声明有什么区别?
我正在我的 WinForm 应用程序中构建一个菜单,我正在做类似的事情:
之后 :
并抛出 IndeOutOfRangeException :
在这个烦人的异常之后,我修改了数组声明:
一切都像魅力一样。
现在的问题是:有没有人知道为什么上面的数组声明有效,而另一个不知道? 非常感谢
c# - 多维字符数组上的 IndexOutOfRangeException
代码循环遍历数组并将每个索引初始化为“*”。但是,我正在接受IndexOutOfRangeException
并Cave[i,j]
希望得到一些指导。
为澄清起见
GridHeight
,GridWidth
声明如下public const int GridHeight = 5;
public const int GridWidth = 7;
c# - 由于 if 条件而发生 IndexOutOfRangeException
IndexOutOfRangeException
刚刚在我正在构建的一个小项目中触发,但为什么呢?
这是布尔条件:
我试图做的是检查这两个对象是否已初始化,但正如您已经想到的那样,这一切都是突然发生的。
c# - 如何检查特定索引中有一行以避免IndexOutOfRangeException
我想知道如何检查特定索引中有一行以避免以下异常:
System.IndexOutOfRangeException
例如 :
如果dtNew
有刚刚a one row
和i = 3
!
c# - 将数据从选定的数据网格视图传递到另一个数据网格视图
您好我正在尝试将选定的 datagridview 行添加到另一个 datagridview。
我正在使用 man 对象类。这是我的课。
我有两个列表。
这是行点击事件的完整代码。
当我单击时,有时会收到此错误消息。
DataGridView 中出现以下异常。
System.indexOutOfRangeException:Index 0 在 System.Windows.Forms.CurrencyManager.get_Item(Int32index) 处没有值 System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetError(Int32rowIndex) 要替换此默认对话框,请处理数据错误事件.
并且单元格被一一清空,并且一直弹出错误消息。谁能告诉我如何纠正它?
c# - c# openFileDialog IndexOutofRange 错误
我在让 openFileDialog 显示时遇到问题。
这是我目前的情况:
我有一个包含多个表单的 WinForms 程序,但它们都在同一个线程中运行。目前,我有两个表单,每个表单都有一个 saveFileDialog 和 openFileDialog。
对于第一种形式,即在启动时打开的形式,saveFileDialog 和 openFileDialog 都可以正常工作,但对于第二种形式,openFileDialog 甚至拒绝打开。
这是我现在得到的堆栈跟踪:
'System.IndexOutOfRangeException' 类型的第一次机会异常发生在 System.Windows.Forms.dll 中的 System.Windows.Forms.OpenFileDialog.OpenFile()
这是发生问题的代码:
如果用户单击确定,这将被触发:
我最初直接从工具箱中使用 openFileDialog ,其属性已更改,然后尝试尝试另一种方式,如您现在所见,在它给我问题之后。
它在某个时候给我的另一个错误是关于找不到文件,好像 openfiledialog 甚至在显示之前就试图打开一个不存在的文件。
我还在其他形式中使用了相当多的 p/Invokes,以及上面代码所在的形式中的一些。尽管它们处理位图和屏幕。
我希望这不是关于我遇到的问题的太多信息。如果还不够,请告诉我您还希望我提供什么。
我知道这个问题可能看起来与这个问题(C# OpenFileDialog 中的 Stackoverflow/CLR 错误)相似,但是这个问题还没有被接受的答案。但与他的问题不同,虽然我确实有 2 个 saveFileDialogs 和 1 个其他 openFileDialogs,但它们根本没有失败。
python - python,循环嵌套,函数,if 语句
这是一段有点乱码的代码摘录。
上下文是它试图遍历一个列表,构建,它应该看起来像 [100, 92, 87, etc]。它希望遍历建筑物的每一层,然后将该人(通过减少当前楼层)移动到下一个可用楼梯。
我的问题是函数内的嵌套列表和 if 语句。这是一个三重打击,我无法理解正确的语法:
调用列表列表的特定部分 - 即 list[i][j]
在循环中使用 if 语句
嵌套循环
在其他循环中使用循环变量
这是我的代码:
编辑:
我弄清楚了这个问题。Building 的输入是一个列表。Staircasenetwork 也是一个列表。列表看起来像这样
这代表了一座 3 层楼的建筑,里面挤满了人和两个空楼梯。
我做错的是我试图写一些类似的东西:
应该采取 (i) 在建筑中(我预计是 [0, 1, 2])和 (j) 在楼梯网络中(我预计是 [0, 1])并使用这两个坐标遍历我写的列表。
我忘记的是python通过直接将这些值分配给(i)来遍历列表。
所以,如果我有一个清单:
我写道:
它将打印:
不是:
所以解决我的问题是使用 range(len(building) 而不是 building.
该语句需要构建,并首先使用 len() 将其转换为等于构建列表长度的整数。然后它获取该整数并使用 range() 将其转换为从 0 到 X 的数字列表。
本质上: [100, 90, 101] >> 3 >> [0, 1, 2]
将打印:
所以在我的第一次尝试中,当我使用:
它做的第一件事是查看建筑物列表中的第一个值,即 100。然后它使用该数字查找建筑物列表中的第 100 个数字,该数字不存在,因为该列表只有 3 个值长。
它试图这样做:
有多种使用语句的方法,例如:
要创建可能如下所示的元组列表:
但我更喜欢使用 range(len(building)) 方法。这种方法可能无法达到很好的速度基准,但它成功地教会了我一些关于代码如何工作的知识,并且解决了我的小问题。
固定代码将显示为:
现在 (i) 和 (j) 将是 (via range(len())) 的坐标,而不是变量的直接反映。
Lego Stormtrooper 还对我的代码的其他问题做出了很好的回应。
c# - c# 索引超出范围。/ 写入 CSV 文件
嗨 只是一个问题...
数据看起来像:(标题有 2 行。)
我想添加一个新的列名示例“fileName”,值为“fileName”......只是为了方便。
我在以下位置收到相同的错误:
lines[index] += "," + newColumnData[index - 1];
但是通过调试器/消息框检查时,索引的值永远不会 <0。如何在第一个位置而不是最后一列添加新列?
python - 尝试使用 python 从文本文件中输出行时出现“列表索引超出范围”
我试图从文本文件中提取偶数行并输出到新文件。但是用我的代码 python 警告我“列表索引超出范围”。任何人都可以帮助我吗?谢谢~
代码:
输出: