Efficient way to approach multiple array bool to switch on and off

I have been trying to find the best solution for the switching between boolean array. User, should be able to solve the first question and then move to the next one. Is there any way to solve this by reducing the boolean array?

My code so far

{
	public GameObject[] correctAnswers;
	Material[] CA_mats;

	public GameObject Answer_System;
	public List<GameObject> answerPrefabs; 
	public Transform[]spawnPos;

	public bool[] CA_A = new bool[9];
	public bool[] CS_A = new bool[9];

    void Start()
	{
		NumGen();
	}

	void Update()
	{
		correctAnswers_Sys();
		answerSelect();
	}


	void answerSelect()
	{
		if(Input.GetMouseButtonDown(0))
		{
			Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			RaycastHit hit;
			if (Physics.Raycast(ray, out hit))
			{
				if(hit.transform.tag == "Three")
				{
					Debug.Log("ClickedRight 3!");
					CA_A[0]= true;
				}
				if(hit.transform.tag == "Five")
				{
					Debug.Log("ClickedRight 5!");
					CA_A[1]= true;
				}
				if(hit.transform.tag == "Seven")
				{
					Debug.Log("ClickedRight 7!");
					CA_A[2]= true;
				}	

			}
		}
	}



	public void correctAnswers_Sys()
	{
		//correctAnswers = GameObject.FindGameObjectsWithTag("Answers");
		
		CA_mats = new Material[correctAnswers.Length];	
		for(int i = 0; i<correctAnswers.Length; i++)
		{
			CA_mats _= correctAnswers*.renderer.material;*_

_ correctAnswers*.renderer.material.color = new Color(0,0,0,0);_
if(CA_A[0]== true)
_ {
correctAnswers[0].renderer.material.color = new Color(0,1,0,1);
}*_

* if(CA_A[1]== true)
_ {
correctAnswers[1].renderer.material.color = new Color(0,1,0,1);
}*_

* if(CA_A[2]== true)
_ {
correctAnswers[2].renderer.material.color = new Color(0,1,0,1);
}*_

* }*
* }*

* public void NumGen()*
* {*
* for(int i = 0; i<spawnPos.Length; i++)*
* {*
* int answerClone= Random.Range(0,answerPrefabs.Count);*

GameObject clone = Instantiate(answerPrefabs[answerClone],spawnPos_.position,spawnPos*.rotation)as GameObject;_
clone.transform.parent = Answer_System.transform;
_ answerPrefabs.RemoveAt(answerClone);
}
}*_

}

I would simply create a class that describes an equation:

public class Equation
{
   public EquationKind kind; // EquationKind.Addition, EquationKind.Subtraction, etc.

   public int leftMember;
   public int rightMember;
   public int result;
}

And then simply pack these into a list:

List<Equation> equations = ...; // Fill it via inspector, from code, etc.

Then I would store an index of the current equation in progress:

int currentEquationIndex = 0;

And then upon completion of an equation I would increase the index and get the new equation by that index:

currentEquationIndex++;
currentEquation = equations[currentEquationIndex];