从字符串列表中选择随机字符串的更好方法
本文关键字:字符串 更好 方法 随机 选择 列表 | 更新日期: 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
实例,以避免产生与快速连续调用代码相关的非随机值。