-3

I am getting the following error from my code:

An unhandled exception occurred while processing the request. IndexOutOfRangeException: Index was outside the bounds of the array.

My code is below:

QuizAssignmentQuestion [] quizAssignmentQuestions=new  QuizAssignmentQuestion[] {};
         int counter=0;
         foreach(QuizAssignmentQuestion quizAssignmentQuestion in quizAssignment.QuizAssignmentQuestions)
         {
            quizAssignmentQuestions[counter]=quizAssignmentQuestion;
            counter+=1;           
         }

The line causing the error is:

 quizAssignmentQuestions[counter]=quizAssignmentQuestion;
  • 2
    Does this answer your question? [What is an IndexOutOfRangeException / ArgumentOutOfRangeException and how do I fix it?](https://stackoverflow.com/questions/20940979/what-is-an-indexoutofrangeexception-argumentoutofrangeexception-and-how-do-i-f) Your array is zero-length – Charlieface Jun 13 '21 at 11:57
  • `QuizAssignmentQuestion [] quizAssignmentQuestions = quizAssignment.QuizAssignmentQuestions.ToArray();` Replace all of your code with this code. – mjwills Jun 13 '21 at 11:59
  • @mjwills I tried the code sniper and it works. Thanks a lot – User 678976 Jun 13 '21 at 12:04

1 Answers1

-2

You have to initialize your array with the number of QuizAssignmentQuestions as below if you want to do with an array:

QuizAssignmentQuestion[] quizAssignmentQuestions=new  QuizAssignmentQuestion[quizAssignment.QuizAssignmentQuestions.Count];
         int counter=0;
         foreach(QuizAssignmentQuestion quizAssignmentQuestion in quizAssignment.QuizAssignmentQuestions)
         {
            quizAssignmentQuestions[counter]=quizAssignmentQuestion;
            counter+=1;           
         }

or You can use list instead of array as below, in this case you need not to determine the size beforehand:

List<QuizAssignmentQuestion> quizAssignmentQuestions=new  List<QuizAssignmentQuestion>();
         foreach(QuizAssignmentQuestion quizAssignmentQuestion in quizAssignment.QuizAssignmentQuestions)
         {
           quizAssignmentQuestions.Add(quizAssignmentQuestion);        
         }
Rashedul.Rubel
  • 3,446
  • 25
  • 36