可能重复:
访问列表中的随机项目
我想从字符串列表中随机生成一个元素,但是我不知道如何实现这一点。我有 4 个元素:aaa、bbb、ccc、ddd。我想生成其中一个随机绘制在屏幕上,我搜索了一段 C# 代码,但它不起作用。有谁知道怎么做这个?
可能重复:
访问列表中的随机项目
我想从字符串列表中随机生成一个元素,但是我不知道如何实现这一点。我有 4 个元素:aaa、bbb、ccc、ddd。我想生成其中一个随机绘制在屏幕上,我搜索了一段 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();
}
}
}