ASP.NET преобразует код сценария действия в эквивалент ASP (2D-массив) - PullRequest
0 голосов
/ 23 февраля 2010

Я создаю движок викторины ASP.net и использую предыдущий движок викторин, который я сделал во Flash в качестве шаблона для версии ASP. Я застрял на том, как я могу добиться следующего кода в ASP.net

// array to hold the answers
var arrAnswers:Array = new Array();
// create and array of answers for the given question
arrAnswers[i] = new Array();
// loop through the answers of each question
for (j=0; j<dataXML.question[i].answers.length(); j++) 
{
//array of answers for that given question is pulle from XML data
arrAnswers[i][j] = dataXML.question[i].answers[j].@choice.toString();
// if the given answer is the correct answer then set that value to the arrcorrect 
}

Может кто-нибудь помочь с тем, как я могу получить приведенный выше код сценария действия в ASP.net?

1 Ответ

2 голосов
/ 23 февраля 2010

Чтобы преобразовать этот код напрямую, вы должны объявить неровный массив, например:

 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...