Heim >Backend-Entwicklung >C++ >Wie wähle ich N zufällige Elemente aus einer C#-Liste aus?

Wie wähle ich N zufällige Elemente aus einer C#-Liste aus?

Linda Hamilton
Linda HamiltonOriginal
2025-01-18 00:37:09821Durchsuche

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

Zufällige Auswahl von N Elementen aus einer C#-Liste

Dieser Artikel zeigt, wie man mithilfe von LINQ effizient eine zufällige Teilmenge von Elementen aus einem C# List<T> auswählt. Die effektivste Methode kombiniert OrderBy und Take.

Hier ist der 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>

Dieser Code funktioniert wie folgt:

  1. OrderBy(x => Guid.NewGuid()): Dadurch wird die Liste gemischt, indem jedem Element eine eindeutige, zufällig generierte GUID als Sortierschlüssel zugewiesen wird.

  2. Take(3): Dadurch werden die ersten drei Elemente aus der gemischten Liste ausgewählt, sodass Sie effektiv drei zufällig ausgewählte Elemente erhalten.

Dieser Ansatz bietet eine präzise und effiziente Möglichkeit, eine zufällige Teilmenge aus Ihrer Liste zu erhalten, ohne dass eine komplexe benutzerdefinierte Randomisierungslogik implementiert werden muss.

Das obige ist der detaillierte Inhalt vonWie wähle ich N zufällige Elemente aus einer C#-Liste aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn