1

重複の可能性:
リスト内のランダムなアイテムにアクセスする

文字列リストから要素をランダムに生成したいのですが、これを実現する方法がわかりません。aaa、bbb、ccc、ddd の 4 つの要素があります。それらの1つを生成して画面にランダムに描画したいのですが、C#のコードを検索しましたが、機能していません。誰もこれを作る方法を知っていますか?

4

3 に答える 3

6

XNA でテキストを描画するには、次のリンクを確認してください。

http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Writing_text.php

その部分を取得したら、リストを作成し、 に渡すランダムな要素を選択するだけですspriteBatch.DrawString()。これは、それがどのように見えるかの簡単なテストされていないバージョンです。コードに合わせてこれを修正する必要があります。

Random r = new Random();
string rand = list[r.Next(list.Count)];

spriteBatch.DrawString(spriteFont, rand, new Vector2(20, 45), Colors.Black);
于 2013-01-29T20:49:26.807 に答える
5

もちろん、簡単です:

List<string> list = new List<string>() { "aaa", "bbb", "ccc", "ddd" };

int l = list.Count;

Random r = new Random();

int num = r.Next(l);

var randomStringFromList = list[num];

また次回は、(考えられる) 理由と共に動作しないコードを含める必要があります。

于 2013-01-29T20:30:10.823 に答える
4

これが必要かどうかはわかりませんが、ランダムな整数を作成してから、string[int] を使用して文字列配列にアクセスしてみませんか。

namespace ConsoleApplication1
{
  using System;
  using System.Text;

  class Program
  {
    static void Main(string[] args)
    {
      Random random = new Random();
      string[] myStrings = new string[] { "aaa", "bbb", "ccc", "ddd" };

      for (int n = 0; n < 10; n++)
      {
        int rnd = random.Next(0, myStrings.Length);
        string s = myStrings[rnd];
        Console.WriteLine("-> {0}", s);
      }

      Console.ReadLine();
    }
  }
}
于 2013-01-29T20:37:33.700 に答える