我想知道如何创建一个随机类,将表中的数据随机分配到36个其他表而不重复,以及如何打印出这些表。 我是编程新手
答案 0 :(得分:1)
忽略“表格”的混乱,随机分配X项的一般方法是:
或代码(使用1-200中的数字列表作为要分发的数据)
static Random random = new Random();
public static void Main(string[] args)
{
var list = new List<int>(Enumerable.Range(1,200));
while(list.Count>0)
{
var item = list[random.Next(0,list.Count)];
list.Remove(item);
// Do something with 'item'
}
}
实例:http://rextester.com/WBOK18374
但是,如果需要随机分配,您可以将所有项目放在Queue
中,然后Dequeue
将它们一次放入一个随机位置放置它们。< / p>
在此示例中,再次使用数字1-200作为数据,使用36 List<int>
作为目标,代码将类似于:
var tables = new List<int>[36];
for(var i=0;i<36;i++)
{
tables[i] = new List<int>();
}
var stack = new Queue<int>(Enumerable.Range(1,300));
while(stack.Count>0)
{
var next = stack.Dequeue();
var table = tables[random.Next(0,36)];
table.Add(next);
}
实例:http://rextester.com/HBDWH46108
最后,如果这是你正在谈论的SQL表(你没有标记它,你将它标记为C# - 因此上面的答案)那么你不应该有36个看起来相同的表。您应该有一个包含数据的表,当它被提取时,您可以随机化结果。或者,在插入时,您可以将分配随机化为任何内容。