Чтобы преобразовать этот код напрямую, вы должны объявить неровный массив, например:
var answers = new string[questionCount][];
Затем вы бы инициализировали элементы внешнего массива, используя LINQ to XML, например:
foreach(var question in data.Elements("Question"))
answers[i] = question.Elements("Answer").Select(a => a.Value).ToArray();
Вы также можете сделать это без цикла, например:
var answers = data.Elements("Question")
.Select(q => q)
.ToArray();
Однако было бы лучше преобразовать массив в класс QuizQuestion
с ReadOnlyCollection<String> AnswerChoices
.
Например:
class QuizQuestion {
public QuizQuestion(XElement elem) {
Text = elem.Element("Text").Value;
AnswerChoices = new ReadOnlyCollection<String>(
elem.Elements("Answer").Select(a => a.Value).ToArray()
);
CorrectAnswerIndex = elem.Attr("CorrectAnswer");
}
public string Text { get; private set; }
public ReadOnlyCollection<String> AnswerChoices { get; private set; }
public int CorrectAnswerIndex { get; private set;}
}
Измените код LINQ to XML в соответствии с вашим форматом XML.