Neu in .NET 8.0 [11]: Neue Zufallsfunktionen
In der Klasse System.Random gibt es nun eine Zufallsreihenfolge mit Random.Shared.Shuffle() und Zufallsauswahl via Random.Shared.GetItems().
- Dr. Holger Schwichtenberg
Microsoft hat in .NET 8.0 die Klasse System.Random
um neu neue statische Funktionen erweitert.
Random.Shared.Shuffle()
sortiert eine gegebene Menge zufällig. Übergeben werden kann ein Objektmenge des Typs System.Array
oder System.Span<T>
.
CUI.H2("Zufallsreihenfolge der Zahlen 1 bis 20");
int[] zahlen = Enumerable.Range(1, 20).ToArray();
Console.WriteLine("Vor Shuffle: " + String.Join(';', zahlen));
Random.Shared.Shuffle<int>(zahlen); // 1. Überladung: T[]
Console.WriteLine("Nach Shuffle: " + String.Join(';', zahlen));
CUI.H2("\nZufallsreihenfolge der Zeichenketten");
Span<string> Websites = ["www.IT-Visions.de", "angular-schulungen.de",
"dotnettraining.de", "www.dotnetframework.de",
"www.dotnet8.de", "dotnet-lexikon.de",
"www.dotnet-doktor.de",
"www.powershell-schulungen.de"];
Random.Shared.Shuffle(Websites); // 2. Überladung: span<string>
foreach (string site in Websites)
{
CUI.LI(site);
}
Random.Shared.GetItems()
liefert eine Zufallsauswahl aus einer Menge. Hier darf man ein Array oder ein ReadonlySpan<T>
übergeben.
Span<string> Websites = ["www.IT-Visions.de", "angular-schulungen.de",
"dotnettraining.de", "www.dotnetframework.de",
"www.dotnet8.de", "dotnet-lexikon.de",
"www.dotnet-doktor.de",
"www.powershell-schulungen.de"];
CUI.H2("Zufallsauswahl 3x3");
for (int i = 0; i < 3; i++)
{
// mit ReadonlySpan<T>
//ReadOnlySpan<string> WebsitesReadOnly = Websites;
//ReadOnlySpan<string> Zufallsauswahl3 = Random.Shared.GetItems(WebsitesReadOnly, 3);
// oder Array T[]
string[] Zufallsauswahl3 = Random.Shared.GetItems(Websites.ToArray(), 3);
foreach (string site in Zufallsauswahl3)
{
CUI.LI(site);
}
Console.WriteLine();
}
(rme)