Sélection aléatoire de N éléments dans une liste C#
Cet article montre comment sélectionner efficacement un sous-ensemble aléatoire d'éléments à partir d'un C# List<T>
à l'aide de LINQ. La méthode la plus efficace combine OrderBy
et Take
.
Voici le code :
<code class="language-csharp">using System; using System.Collections.Generic; using System.Linq; public class RandomElementSelector { public static void Main(string[] args) { // Sample list of strings List<string> names = new List<string>() { "John", "Mary", "Bob", "Alice", "Tom", "Sarah" }; // Select 3 random elements var randomSelection = names.OrderBy(x => Guid.NewGuid()).Take(3); // Output the results Console.WriteLine("Randomly selected elements:"); foreach (string name in randomSelection) { Console.WriteLine(name); } } }</code>
Ce code fonctionne comme suit :
OrderBy(x => Guid.NewGuid())
: cela mélange la liste en attribuant à chaque élément un GUID unique généré aléatoirement comme clé de tri.
Take(3)
: Ceci sélectionne les trois premiers éléments de la liste mélangée, vous donnant effectivement trois éléments choisis au hasard.
Cette approche fournit un moyen concis et efficace d'obtenir un sous-ensemble aléatoire de votre liste sans avoir besoin de mettre en œuvre une logique de randomisation personnalisée complexe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!