Start Debugging

C# Escolher itens aleatoriamente de uma lista

Em C#, você pode selecionar aleatoriamente itens de uma lista usando Random.GetItems, um método introduzido no .NET 8. Aprenda como funciona com exemplos práticos.

Em C#, você pode selecionar aleatoriamente itens de uma lista usando Random.GetItems, um método introduzido no .NET 8.

public T[] GetItems<T>(T[] choices, int length)

O método recebe dois parâmetros:

Há duas coisas importantes a observar sobre esse método:

Dito isso, vejamos alguns exemplos. Vamos assumir o seguinte array de opções:

string[] fruits =
[
    "apple",
    "banana",
    "orange",
    "kiwi"
];

Para selecionar 2 frutas aleatórias dessa lista, simplesmente chamamos:

var chosen = Random.Shared.GetItems(fruits, 2);

Agora, como eu disse antes, as duas frutas escolhidas não são necessariamente únicas. Você pode acabar, por exemplo, com [ "kiwi", "kiwi" ] como seu array chosen. Você pode testar isso facilmente com um do-while:

string[] chosen = null;

do
    chosen = Random.Shared.GetItems(fruits, 2);
while (chosen[0] != chosen[1]);

// At this point, you will have the same fruit twice

E isso abre a possibilidade de o método selecionar mais itens do que você realmente tem na lista. No nosso exemplo temos apenas 4 frutas entre as quais escolher, mas podemos pedir ao GetItems que escolha 10 frutas, e ele fará isso sem problemas.

var chosen = Random.Shared.GetItems(fruits, 10);
// [ "kiwi", "banana", "kiwi", "orange", "apple", "orange", "apple", "orange", "kiwi", "apple" ]

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Voltar