索引超出范围 必须为非负值并小于集合大小怎么解决
System.ArgumentOutOfRangeException:索引超出范围。必须为非负值并小于集合大小。参数名:indexServerstacktrace:在Sy...
System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index
Server stack trace:
在 System.ThrowHelper.ThrowArgumentOutOfRangeException()
在 System.Collections.Generic.List`1.get_Item(Int32 index)
在 TerraMap.Data.TileInfos.get_Item(Int32 id, Int16 u, Int16 v) 位置 c:\source\terramap\Solution\Data\TileInfos.cs:行号 26
在 TerraMap.Data.World.GetTileColor(Int32 y, Tile tile) 位置 c:\source\terramap\Solution\Data\World.cs:行号 1032
在 TerraMap.Data.World.ReadTilesVersion2(BinaryReader reader, Boolean[] importance) 位置 c:\source\terramap\Solution\Data\World.cs:行号 971
在 TerraMap.Data.World.ReadWorldVersion2(BinaryReader reader) 位置 c:\source\terramap\Solution\Data\World.cs:行号 530
在 TerraMap.Data.World.Read(String filename) 位置 c:\source\terramap\Solution\Data\World.cs:行号 506
在 TerraMap.Data.World.<>c__DisplayClass1.<ReadAsync>b__0() 位置 c:\source\terramap\Solution\Data\World.cs:行号 468
在 System.Threading.Tasks.Task.InnerInvoke()
在 System.Threading.Tasks.Task.Execute()
Exception rethrown at [0]:
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 TerraMap.MainWindow.<Open>d__15.MoveNext() 位置 c:\source\terramap\Solution\TerraMap\MainWindow.xaml.cs:行号 166
Exception rethrown at [1]:
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 TerraMap.MainWindow.<Open>d__5.MoveNext() 位置 c:\source\terramap\Solution\TerraMap\MainWindow.xaml.cs:行号 131
Exception rethrown at [2]:
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 TerraMap.MainWindow.<OnOpenExecuted>d__87.MoveNext() 位置 c:\source\terramap\Solution\TerraMap\MainWindow.xaml.cs:行号 1029
Exception rethrown at [3]:
在 System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
在 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) 展开
参数名: index
Server stack trace:
在 System.ThrowHelper.ThrowArgumentOutOfRangeException()
在 System.Collections.Generic.List`1.get_Item(Int32 index)
在 TerraMap.Data.TileInfos.get_Item(Int32 id, Int16 u, Int16 v) 位置 c:\source\terramap\Solution\Data\TileInfos.cs:行号 26
在 TerraMap.Data.World.GetTileColor(Int32 y, Tile tile) 位置 c:\source\terramap\Solution\Data\World.cs:行号 1032
在 TerraMap.Data.World.ReadTilesVersion2(BinaryReader reader, Boolean[] importance) 位置 c:\source\terramap\Solution\Data\World.cs:行号 971
在 TerraMap.Data.World.ReadWorldVersion2(BinaryReader reader) 位置 c:\source\terramap\Solution\Data\World.cs:行号 530
在 TerraMap.Data.World.Read(String filename) 位置 c:\source\terramap\Solution\Data\World.cs:行号 506
在 TerraMap.Data.World.<>c__DisplayClass1.<ReadAsync>b__0() 位置 c:\source\terramap\Solution\Data\World.cs:行号 468
在 System.Threading.Tasks.Task.InnerInvoke()
在 System.Threading.Tasks.Task.Execute()
Exception rethrown at [0]:
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 TerraMap.MainWindow.<Open>d__15.MoveNext() 位置 c:\source\terramap\Solution\TerraMap\MainWindow.xaml.cs:行号 166
Exception rethrown at [1]:
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 TerraMap.MainWindow.<Open>d__5.MoveNext() 位置 c:\source\terramap\Solution\TerraMap\MainWindow.xaml.cs:行号 131
Exception rethrown at [2]:
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 TerraMap.MainWindow.<OnOpenExecuted>d__87.MoveNext() 位置 c:\source\terramap\Solution\TerraMap\MainWindow.xaml.cs:行号 1029
Exception rethrown at [3]:
在 System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
在 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) 展开
展开全部
通常发生索引越界都是在操作集合时发生的 提示已经很清楚的告诉你了 索引不能为负值且要小于集合的大小 不能为负值因为下标是从0开始 你要去集合里找一个-1的当然越界 你集合长度为5 你要去找一个下标为5的 也会越界 所以要小于集合的大小 你最好是能贴出代码
举个例子
int[] intArr=new int[5];
int a=intArr[intArr.Length];
上面就会发生索引越界 因为intArr长度为5 我要取下标为5的也就是第6个元素了
只需要把intArr.Length改成intArr.Length-1就好了
展开全部
检查索引是否超出范围
例如:
int array[10]; //大小为10 的数组
int index=0; //定义索引变量
if(index>=0 && index<10){
索引在范围内
}else{
索引超出范围
}
例如:
int array[10]; //大小为10 的数组
int index=0; //定义索引变量
if(index>=0 && index<10){
索引在范围内
}else{
索引超出范围
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如 int[] iamarray=new int[]{1,2,3};
因为数组长度为3,最后一个为iamarray[2],如果想得到 int number=iamarray[3];就会报上面那个错误,如果在for循环里面出现,要约束好索引i的范围
因为数组长度为3,最后一个为iamarray[2],如果想得到 int number=iamarray[3];就会报上面那个错误,如果在for循环里面出现,要约束好索引i的范围
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |