csh*_*aml 2 c# string random list
我有一个猜单词的游戏,比如刽子手。
这是我用来从单词列表中选择一个单词的代码:
List<string> words = GetWordsList();
int index = new Random().Next(words.Count);
string random = words[index];
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法从单词列表中获取随机项目?
我所说的更好是指(更好的性能或更好的随机性或其他需要考虑的改进)
我根据玩家猜测单词所花费的时间,每 15-30 秒调用一次这些行。
我不知道它是否有用,但为了获得有关上下文的更多信息,我在这些代码行之后从列表中删除了该项目。
我会考虑做这样的事情:
var rnd = new Random();
var words = new Stack<string>(GetWordsList().OrderBy(w => rnd.Next()));
Run Code Online (Sandbox Code Playgroud)
然后,您只需.Pop()从堆栈中取出下一个值即可获得下一个随机单词。
请注意,Random在应用程序中仅实例化实例一次,以避免生成与快速连续调用代码相关的非随机值。
| 归档时间: |
|
| 查看次数: |
12707 次 |
| 最近记录: |