亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用C#如何創(chuàng)建人名或其他物體隨機分組

 更新時間:2025年01月07日 17:07:54   作者:坐井觀老天  
文章描述了一個隨機分配人員到多個團隊的代碼示例,包括將人員列表隨機化并根據(jù)組數(shù)分配到不同組,最后按組號排序顯示結(jié)果

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#實現(xiàn)給圖片添加文字水印的示例代碼

    C#實現(xiàn)給圖片添加文字水印的示例代碼

    在某些應(yīng)用項目中,查看電子圖片信息是經(jīng)常使用到的功能,此時我們就需要給顯示在瀏覽器中的圖片添加文字水印版權(quán)或提示信息,下面我們就來看看如何使用C#實現(xiàn)給圖片添加文字水印吧
    2024-04-04
  • C#中DataGridView導(dǎo)出Excel的兩種方法

    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的問題小結(jié)

    這篇文章主要介紹了基于C#?實現(xiàn)?OPC?DA?Server的相關(guān)知識,關(guān)于C#怎么編寫一個進程外的DCOM組件,這里先不做介紹了,這里主要介紹下OPC?DA?Server?的第一個接口,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 在Unity中使用全局變量的操作

    在Unity中使用全局變量的操作

    這篇文章主要介紹了在Unity中使用全局變量的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#設(shè)置窗體最大化且不遮擋任務(wù)欄的方法

    C#設(shè)置窗體最大化且不遮擋任務(wù)欄的方法

    這篇文章主要介紹了C#設(shè)置窗體最大化且不遮擋任務(wù)欄的方法,涉及針對form窗體的寬和高的相對大小操作,是非常簡單而實用的技巧,需要的朋友可以參考下
    2014-12-12
  • C#調(diào)用Oracle存儲過程的方法

    C#調(diào)用Oracle存儲過程的方法

    這篇文章主要介紹了C#調(diào)用Oracle存儲過程的方法,包含數(shù)據(jù)庫及C#對應(yīng)的調(diào)用代碼,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • C# networkcomms 3.0實現(xiàn)模擬登陸總結(jié)

    C# networkcomms 3.0實現(xiàn)模擬登陸總結(jié)

    這篇文章主要介紹了C# networkcomms 3.0實現(xiàn)模擬登陸總結(jié),需要的朋友可以參考下
    2017-06-06
  • C#圖形編程GDI+基礎(chǔ)介紹

    C#圖形編程GDI+基礎(chǔ)介紹

    這篇文章介紹了C#中的圖形編程GDI+,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • C#如何用ThoughtWorks生成二維碼

    C#如何用ThoughtWorks生成二維碼

    這篇文章主要介紹了C#如何用ThoughtWorks生成二維碼,文中講解非常細致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • C#使用Socket上傳并保存圖片的方法

    C#使用Socket上傳并保存圖片的方法

    這篇文章主要介紹了C#使用Socket上傳并保存圖片的方法,涉及C#使用Socket進行文件傳輸?shù)南嚓P(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04

最新評論