Вас интересует только то, присутствует ли пользовательское значение в массиве, но вы проверяете каждое значение, чтобы в конечном итоге найти не более одного правильного ответа и целую кучу неправильных ответов, а также распечатать из тонны ненужных сообщений.
Есть несколько способов атаковать это. Например, если вы найдете значение, вы можете установить флаг и выйти из цикла раньше.
bool isFound = false;
for (int index = 0; index < rightanswers.Length; index++)
{
if (finalAnswer == rightanswers[index])
{
isFound = true;
break;
}
}
if (isFound)
TextValidation.text = "You are correct your answer is :" + finalAnswer;
else
TextValidation.text = "You are wrong";
delete();
В качестве альтернативы, вы можете использовать LINQ, чтобы выяснить, соответствует ли какой-либо элемент массива искомому значению.
if (rightanswers.Any(x => x == finalAnswer))
TextValidation.text = "You are correct your answer is :" + finalAnswer;
else
TextValidation.text = "You are wrong";
delete();