关于索引自动失效错误asp.net c#
嗨 我正在创建在线测验。为此,我正在创建由用户选择的答案数组。为此,我使用了以下代码,它给出了正确的数组,但有时会给出错误“索引超出范围”关于索引自动失效错误asp.net c#,asp.net,Asp.net,嗨 我正在创建在线测验。为此,我正在创建由用户选择的答案数组。为此,我使用了以下代码,它给出了正确的数组,但有时会给出错误“索引超出范围” //rsel是所选答案的会话值 int rsel=Convert.ToInt32(会话[“rblsel”); //[Convert.ToInt32(会话[“计数器”]表示问题数量数组的大小 int[]ansarray=new int[Convert.ToInt32(会话[“计数器])-1]; int[]temp=(int[])会话[“arrofans”];
//rsel是所选答案的会话值
int rsel=Convert.ToInt32(会话[“rblsel”);
//[Convert.ToInt32(会话[“计数器”]表示问题数量数组的大小
int[]ansarray=new int[Convert.ToInt32(会话[“计数器])-1];
int[]temp=(int[])会话[“arrofans”];
int j,n;
if(temp==null)
n=0;
其他的
n=温度长度;
对于(j=0;j
帮我找出确切的错误。Asp.net,c#
谢谢。当
**arrofans.length >= Counter**
你为什么要把“计数器”减少一个
看起来应该是+1
…但老实说,使用ansarray
-的大小并使用数组会更简单。调整大小
可以有效地扩展它:
int[] ansarray = (int[])Session["arrofans"];
Array.Resize(ref ansarray, ansarray.Length + 1);
ansarray[ansarray.Length - 1] = rsel;
Session["arrofans"] = ansarray;
这样,您甚至不需要会话的“计数器”部分。temp.Length不应大于ansarray.Length,或者确切地说,从您的代码来看,它是ansarray.Length。Length必须是temp.Length+1或更大。为了避免出现问题,您必须将其更改为for(j=0;j
int[] ansarray = new int[Convert.ToInt32(Session["Counter"]) - 1];
int[] ansarray = (int[])Session["arrofans"];
Array.Resize(ref ansarray, ansarray.Length + 1);
ansarray[ansarray.Length - 1] = rsel;
Session["arrofans"] = ansarray;