C#.NET 随机分组 | 集合分组 | 集合(列表、数组)分成几组
直接上代码:
/// <summary>
/// 随机分组
/// </summary>
/// <param name="list">列表集合</param>
/// <param name="GroupCount">组数</param>
/// <returns></returns>
public static List<List<string>> RandomizedGroupingArray(List<string> list, int GroupCount = 1)
{
//打乱
Random random = new Random();
list = list.OrderBy(x => random.Next()).ToList();
//分组
var groups = list
.Select((item, index) => new { Item = item, GroupIndex = index % GroupCount })
.GroupBy(item => item.GroupIndex, (key, group) => group.Select(groupItem => groupItem.Item).ToList())
.ToList();
return groups;
}
测试结果:
namespace Test
{
public class Program
{
public static void Main(string[] args)
{
List<string> list = new List<string>()
{
"1",
"2",
"3",
"4",
"5",
"6",
};
//分成3组
var result = RandomizedGroupingArray(list,3);
int groupIndex = 1;
foreach (var item in result)
{
Console.WriteLine($"第{groupIndex}组");
foreach (var item2 in item)
{
Console.WriteLine(item2);
}
Console.WriteLine();
}
}
/// <summary>
/// 随机分组
/// </summary>
/// <param name="list">列表集合</param>
/// <param name="GroupCount">组数</param>
/// <returns></returns>
public static List<List<string>> RandomizedGroupingArray(List<string> list, int GroupCount = 1)
{
//打乱
Random random = new Random();
list = list.OrderBy(x => random.Next()).ToList();
//分组
var groups = list
.Select((item, index) => new { Item = item, GroupIndex = index % GroupCount })
.GroupBy(item => item.GroupIndex, (key, group) => group.Select(groupItem => groupItem.Item).ToList())
.ToList();
return groups;
}
}
}
作者:重庆熊猫
出处:https://www.cnblogs.com/cqpanda/p/17013549.html
版权:本作品采用「不论是否商业使用都不允许转载,否则按3元1字进行收取费用」许可协议进行许可。
本文来自博客园,作者:重庆熊猫,转载请注明原文链接:https://www.cnblogs.com/cqpanda/p/17013549.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具