如果我有一个包含以下字符串的列表:
"a","b","c","d","e","f","g","h","i","j","k","l","m","n"
Run Code Online (Sandbox Code Playgroud)
获取随机字符串的最佳方法是什么,但加权的方式更可能是"a"而不是"n"?
选择两个随机数并选择较低的一个.
Random rnd = new Random();
var randomItem = list[Math.Min(rnd.Next(list.Count+1), rnd.Next(list.Count+1))];
Run Code Online (Sandbox Code Playgroud)
我建议你自己确定每个项目的相对概率.
如果你想出一个更严格的'最佳'定义,那么这个答案可能不适合它.