您的位置:首页 > 编程语言 > C#

C#中随机分组相关Test

2016-05-26 11:41 513 查看
//随机分组相关

//结合List的remove()方法//及Random.next() 动态的取出新的List索引实现随机分组

//
<pre name="code" class="csharp">        //Test 随机分组
[HttpPost]
public ActionResult RandomsGroupsStu(int totalStuNum, int groupNum)
{
//totalStuNum 总人数 //groupNum 每组人数
int groupClub = 0;  //组数
int groupNumTemp = totalStuNum / groupNum;
int groupTemp = totalStuNum % groupNum; //多余的人数
if (groupTemp == 0) groupClub = groupNumTemp;
else groupClub = groupNumTemp + 1;  //多余人数单独成组
//
List<int> tempList = new List<int>();//List用于动态Remove索引
List<StuArrModel> StuInfoList = new List<StuArrModel>();//学生基本信息List
//构造数据/用于Test
for (int i = 0; i < totalStuNum; i++)
{
StuArrModel stuModel = new StuArrModel();//学生基本信息构造类
stuModel.StuID = "No" + Convert.ToString(i + 1);
stuModel.StuName = "A" + Convert.ToString(i + 1);
StuInfoList.Add(stuModel);
tempList.Add(i);
}
string[] StuIDArr = new string[groupClub];
string[] StuNameArr = new string[groupClub];
for (int j = 0; j < groupClub; j++)
{
for (int t = 0; t < groupNum; t++)
{
if (tempList.Count == 0) break;
int value = tempList[new Random((int)DateTime.Now.Ticks).Next(0, tempList.Count)];//(0-tempList.count)间的随机数
tempList.Remove(value); //动态移除
StuIDArr[j] += StuInfoList[value].StuID + "@";
//StuNameArr[j] += StuInfoList[value].StuName + "@";
}
StuIDArr[j] = StuIDArr[j].Substring(0, StuIDArr[j].Length - 1);
}
return Json(StuIDArr, JsonRequestBehavior.AllowGet);
}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息