我有两个列表(相同长度),大约存储了10个整数。 我通过一个for循环运行它们来检查它们是否与if
语句同时出现。我知道这个列表包含1个值,该值对于if
-陈述有效。 的确,我的第一个Debug显示了正确的值(对应于列表中值的位置,即8)。声明了数组大小,但仍然出现错误:索引超出范围
我的第二个调试显示了这个地方的相应值,即71. 但是,当我尝试将列表的值(它是71)赋予数组DefMarkerX[count]
的第一个点时,出现以下错误。
IndexOutOfRangeException
: Array index is out of range.
我真的不知道问题是什么,因为我已经在早期阶段声明了数组的大小。
我的代码是:
public static int Markers = 1;
public static int[] DefMarkerX = new int[Markers];
public static int[] DefMarkerY = new int[Markers];
// ....................................................
int count = 0;
for (int i = 0; i < MarkerPosX.Count; i++)
{
if (MarkerPosX[i] > 10 && MarkerPosX[i] < 246 && MarkerPosY[i] > 10 && MarkerPosY[i] < 246)
{
Debug.Log("i: " + i)
Debug.Log("markerposx: " + MarkerPosX[i]);
DefMarkerX[count] = MarkerPosX[i];
显示最后一行是从哪里获得我的错误。 在此先感谢您的帮助!
您正在将数组的大小设置为1,这意味着如果i> 0它将超出范围。 P.S.,不要忘记阵列是基于0的,所以阵列中的第一项将位于位置0. – Spluf
后整个代码 –
'count'仍然为0,所以它不会抛出任何异常。请发布完整的代码。 –