Start Debugging

C# Elegir aleatoriamente elementos de una lista

En C#, puedes seleccionar aleatoriamente elementos de una lista usando Random.GetItems, un método introducido en .NET 8. Aprende cómo funciona con ejemplos prácticos.

En C#, puedes seleccionar aleatoriamente elementos de una lista usando Random.GetItems, un método introducido en .NET 8.

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

El método toma dos parámetros:

Hay dos cosas importantes que tener en cuenta sobre este método:

Dicho esto, veamos algunos ejemplos. Asumamos el siguiente arreglo de opciones:

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

Para seleccionar 2 frutas aleatorias de esa lista, simplemente llamamos:

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

Ahora, como dije antes, las dos frutas elegidas no son necesariamente únicas. Podrías terminar, por ejemplo, con [ "kiwi", "kiwi" ] como tu arreglo chosen. Puedes probarlo fácilmente con un 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

Y esto abre la posibilidad de seleccionar más elementos de los que realmente tienes en la lista. En nuestro ejemplo solo tenemos 4 frutas entre las que elegir, pero podemos pedirle a GetItems que elija 10 frutas y lo hará sin 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.

< Volver