公司年会,单位庆典举办活动时用电脑抽奖取代小纸箱来抽箱,开放式设定一些奖项与奖项人数,随机从员工名单中抽取,界面图片与文字支持动态调整。用C#编写其随机抽取人数的代码:
/// <summary>
/// 抽奖的随机算法
/// </summary>
/// <param name="numWinners">抽取的人数</param>
/// <param name="participants">人员列表</param>
/// <returns></returns>
private List<string> DrawWinners(int numWinners, List<string> participants)
{
try
{
List<string> winners = new List<string>();
List<string> tempParticipants = new List<string>(participants); // 创建原始列表的副本作为临时列表
Random random = new Random();
for (int i = 0; i < numWinners; i++)
{
int index = random.Next(tempParticipants.Count);
string winner = tempParticipants[index];
winners.Add(winner);
tempParticipants.RemoveAt(index);
}
return winners;
}
catch (Exception ex)
{
// 出现了计算错误
Global.errorCode |= Global.ErrorCodes.Error_DrawWinners;
string msg = string.Format("随机抽取中奖人错误:{0}", ex.Message);
MessageBox.Show(msg, Global.msgCaption);
Logger.log.Error(msg);
return null;
}
}
程序下载地址:
链接:https://pan.baidu.com/s/1OcgcF2RuKfRWBJKS6PtiYw
提取码:ht9k