Maison >développement back-end >C++ >Comment sélectionner N éléments aléatoires dans une liste C# ?

Comment sélectionner N éléments aléatoires dans une liste C# ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-18 00:37:09821parcourir

How to Select N Random Elements from a C# List?

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 :

  1. 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.

  2. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn