从字符串列表中选择随机字符串的更好方法

本文关键字:字符串 更好 方法 随机 选择 列表 | 更新日期: 2023-09-27 18:02:20

我有一个猜单词的游戏,有点像猜字游戏

这是我用来从单词列表中选择一个单词的代码:

List<string> words = GetWordsList();
int index = new Random().Next(words.Count);
string random = words[index];

是否有更好的方法从单词列表中获得随机项?

编辑1:

更好的意思是(更好的性能或更好的随机性或其他需要考虑的改进)

编辑2:

根据玩家猜单词所花费的时间,我每15-30秒调用一次这些行。

编辑3:

我不知道它是否有用,但是为了获得更多关于上下文的信息,我从列表中删除了这些代码行之后的项。

从字符串列表中选择随机字符串的更好方法

我会考虑这样做:

var rnd = new Random();
var words = new Stack<string>(GetWordsList().OrderBy(w => rnd.Next()));

然后将堆栈中的下一个值.Pop(),以获得下一个随机单词。

请注意在应用程序中只实例化一次Random实例,以避免产生与快速连续调用代码相关的非随机值。