问题及注释
static void Main(string[] args)
{
Random rd = new Random();
Dictionary<string,int> dic= new Dictionary<string, int>();
List<string> name = new List<string>(); //名字 随机概率
dic.Add("a", 10);
dic.Add("b", 20);
dic.Add("c", 30);
dic.Add("d", 25);
dic.Add("e", 15);
for (int i = 0; i < 3; i++) //随机次数(掉落次数)
{
int sum = 0;
foreach (var item in dic)
{
sum += item.Value;
}
int temp = rd.Next(1, sum + 1); //包括左不包括右
int sum2 = 0;
foreach (var item in dic)
{
sum2 += item.Value;
if (sum2 < temp)
{
continue;
}
else
{
name.Add(item.Key);
break;
}
}
dic.Remove(name[name.Count - 1]); //去重,不相同
}
foreach (var item in name)
{
Console.WriteLine(item);
}
}