索引超出了数组界限如何解决

这个问题怎么解决?... 这个问题怎么解决? 展开
 我来答
折柳成萌
高粉答主

2018-09-08 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6340万
展开全部
限制索引取值范围(0到 (数组长度-1)),或者增加数组的长度

数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
数组是通过下表进行访问,但超出下标(索引)最大值(数组长度-1)就会访问超出界限
如:int [] arr= new int[2];;
arr[0]=1;

arr[1]=2;

--此数组长度为2,下标最大为1(数组下标从0开始)
--如果下标超出0-1这个范围就会出现索引超出界限问题。
--限制下标(索引)的取值范围,或者数组长度增加都可以防止索引超出界限
追问
看不懂啊
uhbic58
2011-01-15 · TA获得超过305个赞
知道答主
回答量:381
采纳率:0%
帮助的人:275万
展开全部
"索引超出了数组界限"并不是说索引有多长,
而是说这个索引在数组的界限当中找不到,
在楼主的代码中,
无法保证String[] args 一定有值(即可能不存在args[0]),

如果楼主是想在string[] args有值的情况下才输出第一个参数的话,
可以改成
class Program
{
static void Main(string[] args)
{
string strName; //声明一个string类型的值变量
if (args.Count() > 0)
{
strName = args[0];//把第一个参数赋给变量strName
Console.WriteLine("This is the first argument: !", strName); //格式化输出第一个参数
}
}
}

如果楼主想不管有没有值都输出信息,
可以改成:
static void Main(string[] args)
{
string strName = "args is null"; //声明一个string类型的值变量(当数组string[] args 没值时,输出args is null)
if (args.Count() > 0)
{
strName = args[0];//把第一个参数赋给变量strName

}
Console.WriteLine("This is the first argument: !", strName); //格式化输出第一个参数
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
智者总要千虑
高粉答主

2019-05-08 · 说的都是干货,快来关注
知道顶级答主
回答量:7.9万
采纳率:88%
帮助的人:1.4亿
展开全部
索引超出数组范围,意思是比如说你的数组有n个值,但你用的时候你用到了a(n+1);就会提醒你超出维度。
你用了for循环T=1:20,那么循环中的T就是一个数值,或者说是长度为1的数组,而你T(u+r-p) 却把T作为数组,那么一旦u+r-p>1,那就不对了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdeoug
2011-01-15 · TA获得超过3136个赞
知道小有建树答主
回答量:1224
采纳率:0%
帮助的人:1114万
展开全部
你是不是插入相同的键了,最好使用索引器插入比如 dict[key] = value这样出现同样的key的时候不会报异常

补充:
你是多线程用么?那你不能直接用的
请你把Dictionary强制转换成ICollection,获取其SyncRoot属性,lock他再读取就可以避免多线程问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式