0

我放弃了在 Excel 中这样做,所以我制作了一个 XML 文件(名为“ideas.xml”),如下所示:

<ideas>
<verbs>
    <verb>Verb1</verb>
    <verb>Verb2</verb>
    <verb>Verb3</verb>
    <verb>Verb4</verb>
    <verb>Verb5</verb>

</verbs>
<adjectives>
    <adjective>Adjective1</adjective>
    <adjective>Adjective2</adjective>
    <adjective>Adjective3</adjective>
    <adjective>Adjective4</adjective>
    <adjective>Adjective5</adjective>
</adjectives>
<nouns>
    <noun>Noun1</noun>
    <noun>Noun2</noun>
    <noun>Noun3</noun>
    <noun>Noun4</noun>
    <noun>Noun5</noun>
</nouns>
</ideas>

我正在尝试制作一个像这样打印出随机动词、形容词和名词的生成器。这是我正在努力解决的问题:

    public void button1_Click(object sender, EventArgs e)
    {


        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load("ideas.xml");

        Random r = new Random();
        XmlNodeList verbTag = xmlDoc.GetElementsByTagName("verb");
        XmlNodeList adjectiveTag = xmlDoc.GetElementsByTagName("adjective");
        XmlNodeList nounTag = xmlDoc.GetElementsByTagName("noun");


        textBox1.Text = ((verbTag[0].InnerText) + " " + (adjectiveTag[0].InnerText) + " " + (nounTag[0].InnerText)) + ".";
    }

我正在尝试在输出中添加一个随机化器,但我似乎无法做到正确。此外,我打印出数组中的第一个值只是为了让它工作,任何关于如何在 0 和最后一个之间选择随机数的提示都会非常好。

非常感谢任何帮助、提示或建议。

4

1 回答 1

0

使用您的r变量(即Random类实例)来生成索引,而不是0像代码中那样硬编码:

textBox1.Text = ((verbTag[r.Next(0, verbTag.Count - 1)].InnerText) + " " + (adjectiveTag[r.Next(0, adjectiveTag.Count - 1)].InnerText) + " " + (nounTag[r.Next(0, nounTag.Count - 1)].InnerText)) + ".";
于 2013-04-06T16:43:46.807 回答