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

コードのようにハードコードされた s の代わりに、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 に答える