如何从C#中的数组中获取随机值

She*_*ian 15 .net c# arrays random collections

可能重复:
访问列表中的随机项

我有一个数字数组,我想从这个数组中获取随机元素.例如:{0,1,4,6,8,2}.我想选择6并将此数字放在另一个数组中,新数组将具有值{6,....}.

我使用random.next(0,array.length),但这给出了一个随机数的长度,我需要随机数组.

for (int i = 0; i < caminohormiga.Length; i++ )
{
    if (caminohormiga[i] == 0)
    {
        continue;
    }

    for (int j = 0; j < caminohormiga.Length; j++)
    {
        if (caminohormiga[j] == caminohormiga[i] && i != j)
        {
            caminohormiga[j] = 0;
        }
    }
}

for (int i = 0; i < caminohormiga.Length; i++)
{
   int start2 = random.Next(0, caminohormiga.Length);
   Console.Write(start2);
}

return caminohormiga;
Run Code Online (Sandbox Code Playgroud)

Til*_*lak 19

我使用random.next(0,array.length),但这给出了随机数的长度,我需要随机数组.

使用random.next(0, array.length)as作为索引的返回值从中获取值array

 Random random = new Random();
 int start2 = random.Next(0, caminohormiga.Length);
 Console.Write(caminohormiga[start2]);
Run Code Online (Sandbox Code Playgroud)


Set*_*ers 19

洗牌

int[] numbers = new [] {0, 1, 4, 6, 8, 2};
int[] shuffled = numbers.OrderBy(n => Guid.NewGuid()).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 有趣的方法! (2认同)

fae*_*ter 5

您只需使用随机数作为数组的引用:

var arr1 = new[]{1,2,3,4,5,6}
var rndMember = arr1[random.Next(arr1.Length)];
Run Code Online (Sandbox Code Playgroud)