重複の可能性:
リスト内のランダムなアイテムにアクセスする
文字列リストから要素をランダムに生成したいのですが、これを実現する方法がわかりません。aaa、bbb、ccc、ddd の 4 つの要素があります。それらの1つを生成して画面にランダムに描画したいのですが、C#のコードを検索しましたが、機能していません。誰もこれを作る方法を知っていますか?
重複の可能性:
リスト内のランダムなアイテムにアクセスする
文字列リストから要素をランダムに生成したいのですが、これを実現する方法がわかりません。aaa、bbb、ccc、ddd の 4 つの要素があります。それらの1つを生成して画面にランダムに描画したいのですが、C#のコードを検索しましたが、機能していません。誰もこれを作る方法を知っていますか?
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);
もちろん、簡単です:
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];
また次回は、(考えられる) 理由と共に動作しないコードを含める必要があります。
これが必要かどうかはわかりませんが、ランダムな整数を作成してから、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();
}
}
}