C# 中索引超出了数组界限怎么解决

如题所述

"索引超出了数组界限"并不是说索引有多长,
而是说这个索引在数组的界限当中找不到,
在楼主的代码中,
无法保证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); //格式化输出第一个参数
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-15
你是不是插入相同的键了,最好使用索引器插入比如 dict[key] = value这样出现同样的key的时候不会报异常

补充:
你是多线程用么?那你不能直接用的
请你把Dictionary强制转换成ICollection,获取其SyncRoot属性,lock他再读取就可以避免多线程问题了
第2个回答  推荐于2016-02-14
既然知道数组的界限,就可以判断索引有没有超出范围了,然后针对每种情况写对应的处理程序。写代码关键是把各种可能尽量想全了本回答被提问者和网友采纳
第3个回答  2011-01-14
C#的数组都是有长度属性的,你访问时判断一下,如果不想判断,就try一下,把异常处理掉就行了,不过效率低了点
第4个回答  2011-01-14
知道越界就收回去的啊
这东西就好比借记卡,不能透支的,所以另可小,不可大;

C# 中索引超出了数组界限怎么解决
1. 抛出异常。在C#中,可以使用throw语句抛出异常,告知调用者索引超出范围。2. 调整索引。如果发现索引值过大,可以尝试减小它,使其在有效范围内。3. 使用循环控制。在遍历数组时,可以使用循环条件来防止索引超出范围。4. 使用try-catch块。在执行可能引发异常的代码时,可以使用try-catch块捕获并处理...

C#中如何解决"索引超出了数组界限"这个异常
"索引超出了数组界限"并不是说索引有多长,而是说这个索引在数组的界限当中找不到,在楼主的代码中,无法保证String[] args 一定有值(即可能不存在args[0]),如果楼主是想在string[] args有值的情况下才输出第一个参数的话,可以改成 class Program { static void Main(string[] args){ string...

C#执行中出现“索引超出数组界限”的错误。应该如何修改?
你这句话,就把索引的值,赋成了长度值,超出了索引范围,所以报错了,改成length-1

索引超出了数组界限
4、通过修改,程序得到正确执行。

C#索引超出了数组界限
代码逐个反向输出字符串的字符。但在实际运行时,循环终止于索引0,此时尝试访问str[0]之前,已经超出了数组界限,导致未定义行为。因此,这段代码在运行时可能会出现问题。总结,数组索引的正确使用需遵循以下规则:索引从0开始,最大索引值为数组长度减1。在遍历数组时,应确保索引值始终位于有效范围内。

C#索引超出了数组界限
搞笑。你必须确保str3这个字符串被分割成5段以上,存放在sArray数组里。否则就会索引超出数组界限。你看sArray[4]已经访问了数组的第5个元素了。话说回来,良好的编程习惯应该有基本的逻辑判断与异常处理代码。看你的代码,一样都没有。

C#高手,请教一下关于"索引超出了数组界限"?
n+1,当n=49时,A[m,50]不就越界了么。改成if((i<>m || j<>n) && Array[i,j]+Array[m,n]==100)就行了

C# 编程 提示索引超出了数组界限 应该怎么写?
此段代码 由于声明了一个args数组,但是args数组里面没有赋予任何值,所以根本不存在arg[0],arg[1]...这里 你只需要给args赋予初始值即可。如-- args=new string[1]{"奥特曼"};string strName;strName=args[0];

c#中索引超出数组界限
您说索引超出数组界限,我猜测您的数组定义是这样写的:int[] intdata=new int[100];如果是这样的话,错误就在您的循环次数上了,数组是由0开始的,所以应该在for循环中,去掉=100这个条件,也就是说,for循环要这样写for(int i=0;i<100;i++) 这样写就对了。

C# 关于“索引超出了数组界限”报错的问题,各位高手帮帮忙吧。满意再...
Button[] name = new Button[number];\/\/声明button类的对象矩阵 Form3[] fo = new Form3[number];\/\/声明form类的对象矩阵 try { for (int i = 0; i < number; i++)\/\/批量声明和定义 你定义的对象矩阵的长度都为number,而for循环中i从0开始,那么后面就应该是number-1啊,这样写 ...

相似回答