随机数生成器,重复次数不超过2次

cem*_*ebi 0 c# unity-game-engine

我有从51个精灵中随机选择15个精灵的代码.它可以生成2个重复的精灵(这对我来说是可以接受的),但我想避免3个重复的值.我怎么能防止这种情况?

我的代码

for (int i = 0; i < 16; i++)
{
    int arrIndex = UnityEngine.Random.Range(0, tasSprites.Length);
    tasSprite = tasSprites[arrIndex];
    tasName = tasSprite.name;
    taslar.Add(Int32.Parse(tasName));
}
Run Code Online (Sandbox Code Playgroud)

Tud*_*dor 5

您是否尝试检查每个生成的索引是否已经出现过两次taslar,如果是,则生成另一个索引?

while (taslar.Count < 16)
{
    int arrIndex = UnityEngine.Random.Range(0, tasSprites.Length);
    tasSprite = tasSprites[arrIndex];
    tasName = tasSprite.name;
    int value = Int32.Parse(tasName);
    if (taslar.Count(t => t == value) < 2)
    {
        taslar.Add(value);
    }
}
Run Code Online (Sandbox Code Playgroud)