tnblog
首页
视频
资源
登录
什么时候才能领悟,取之越多失之越多
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术

3个一组产生N组不重复的随机数,随机分组

4676人阅读 2020/1/2 11:42 总访问:883885 评论:0 收藏:0 手机
分类: 随笔


可以用来做随机分组,思路就是先参数一个不重复的随机数列表,然后在根据几个一组进行分组即可。

例如如下需求:写段代码来让一个班的人随机分几个小队,比如这个班21个人,3个人一队


参考代码如下:

public void Index()
{
    Response.ContentType = "text/html;charset=UTF-8";
    List<string> namelist = names.Split(',').ToList();
    //先随机参数不重复的随机数
    Random random = new Random();
    List<int> poilist = new List<int>();
    for (int i = 0; i < namelist.Count; i++)
    {
        int randomNum = random.Next(0, namelist.Count);
        if (poilist.Contains(randomNum))
        {
            i--;
            continue;
        }
        poilist.Add(randomNum);
    }
    //根据数字分组(3个一小组),然后把结果在用个双循环输出
    foreach (List<int> itemList in poilist.GroupByNum(3))
    {
        foreach (int item in itemList)
        {
            Response.Body.Write(System.Text.Encoding.UTF8.GetBytes(namelist[item] + " "));
        }
        Response.Body.Write(System.Text.Encoding.UTF8.GetBytes("<br/>"));
    }
}

GroupByNum是个根据数组分组的扩展方法,自己封装的


欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价