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
Libérer: 2025-01-18 00:37:09
original
820 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal