为什么会有异常??

程序小海 2009-07-28 08:59:43
int[] arry=new int [10]{12,23,4,5,12,87,98,90,34,12};
int d = Array.IndexOf(arry ,12,2,9);
Console.WriteLine(d);
...全文
96 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
AustinLuo 2009-07-29
  • 打赏
  • 举报
回复
楼主太不小心了。。
mbh0210 2009-07-29
  • 打赏
  • 举报
回复
Array.IndexOf(arry ,object , startIndex , Count)

startIndex 开始索引,Count指的是从startIndex开始多少个
dancingbit 2009-07-29
  • 打赏
  • 举报
回复
因为下标是从0开始,那么第2到第9的表示就是下标1开始,共计8个数。
代码中就应该是这样:

int d = Array.IndexOf(arry ,12,1,8);

不过,从第2开始,到数组结束,有9个数组元素,长度可以为9了。
hztltgg 2009-07-29
  • 打赏
  • 举报
回复
int d = Array.IndexOf(arry ,12,2,9);
意思是索引2开始(就是0开始计数)的后9个

你要第二个数字到第九个数
int d = Array.IndexOf(arry ,12,开始-1,结束-开始+1);

int d = Array.IndexOf(arry ,12,2-1,9-2+1);
程序小海 2009-07-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dancingbit 的回复:]
下标是从0起始的,你定义的数组最大合法下标就是9了,而从2开始的第9个,下标已经是10了。
[/Quote]

那我想 确定12这个数 在第2个数和第9个数之间的位置 该如何编辑呢??
江南小鱼 2009-07-29
  • 打赏
  • 举报
回复
Array.IndexOf(Array,Object,StartIndex,count);
参数:
Array,要搜索的数组
Object,要搜索的元素
StartIndex,从指定索引处开始搜索
count,从指定索引开始,搜索范围是“包括指定索引值StartIndex在内的count个数组元素”
所以你程序中IndexOf方法最大值是8
dancingbit 2009-07-28
  • 打赏
  • 举报
回复
下标是从0起始的,你定义的数组最大合法下标就是9了,而从2开始的第9个,下标已经是10了。
程序小海 2009-07-28
  • 打赏
  • 举报
回复
不是说是 2 到 9之间的吗?、?
tylichao008 2009-07-28
  • 打赏
  • 举报
回复
下标越界
dancingbit 2009-07-28
  • 打赏
  • 举报
回复
出了合法下标的范围了。
hztltgg 2009-07-28
  • 打赏
  • 举报
回复
IndexOf(arry ,12,2,9);

2+9=11 超过 int [10]的10了

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧