使用C#如何創(chuàng)建人名或其他物體隨機分組
C#創(chuàng)建人名或其他物體隨機分組
假設(shè)您有一群人,您想將他們隨機分配到多個團隊。
public class Randomizer { public static void Randomize<T>(T[] items) { Random rand = new Random(); // For each spot in the array, pick // a random item to swap into that spot. for (int i = 0; i < items.Length - 1; i++) { int j = rand.Next(i, items.Length); T temp = items[i]; items[i] = items[j]; items[j] = temp; } } }
private void Randomize_Click(object sender, EventArgs e) { // Put the items in an array. string[] items = txtItems.Lines; // Randomize. Randomizer.Randomize(items); // Display the result. txtResult.Lines = items; txtResult.Select(0, 0); }
此示例使用以下代碼將人員分配到組
// Assign the people to groups. private void btnAssign_Click(object sender, EventArgs e) { // Get the names into an array. int num_people = lstPeople.Items.Count; string[] names = new string[num_people]; lstPeople.Items.CopyTo(names, 0); // Randomize. Randomizer.Randomize(names); // Divide the names into groups. int num_groups = int.Parse(txtNumGroups.Text); lstResult.Items.Clear(); int group_num = 0; for (int i = 0; i < num_people; i++) { lstResult.Items.Add(group_num + " " + names[i]); group_num = ++group_num % num_groups; } }
代碼首先將lstPeople ListBox
中的名稱復(fù)制到字符串?dāng)?shù)組中。然后使用Randomizer.Randommize對數(shù)組進行隨機化。
然后程序循環(huán)遍歷數(shù)組,將每個姓名添加到lstResult ListBox中。它將group_num值添加到每個人的姓名中,為其賦予一個組號。然后,它增加group_num并將結(jié)果取模num_groups,因此group_num值循環(huán)遍歷組號 0、1、2、...、num_groups - 1、0、1、2、...
lstResult ListBox的Sorted屬性設(shè)置為true,因此結(jié)果將按組號排序顯示。
注意:
- 如果隊伍數(shù)不能均勻地分清人數(shù)
- 那么一些第一名的隊伍會比其他隊伍多一個人
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#中DataGridView導(dǎo)出Excel的兩種方法
這篇文章主要介紹了C#中DataGridView導(dǎo)出Excel的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01基于C#?實現(xiàn)?OPC?DA?Server的問題小結(jié)
這篇文章主要介紹了基于C#?實現(xiàn)?OPC?DA?Server的相關(guān)知識,關(guān)于C#怎么編寫一個進程外的DCOM組件,這里先不做介紹了,這里主要介紹下OPC?DA?Server?的第一個接口,感興趣的朋友跟隨小編一起看看吧2024-04-04C# networkcomms 3.0實現(xiàn)模擬登陸總結(jié)
這篇文章主要介紹了C# networkcomms 3.0實現(xiàn)模擬登陸總結(jié),需要的朋友可以參考下2017-06-06