Neu in .NET 9.0 [19]: EnumerateSplits() für reguläre Ausdrücke
Die neue Methode zum Aufteilen von Zeichenketten vermeidet Speicherallokationen.
(Bild: Pincasso/Shutterstock.com)
- Dr. Holger Schwichtenberg
Die Klasse System.Text.RegularExpressions.Regex bietet in .NET 9.0 eine neue Methode EnumerateSplits() in Ergänzung zu der bestehenden Methode Split():
- Die bestehende Methode
Split()spaltet eine Zeichenkette (KlasseString) in Teile auf, entsprechend der angegebenen Trennungszeichen. - Die neue Methode
EnumerateSplits()erwartet hingegen als Eingabe die Zeichenkette alsReadOnlySpan<char>und liefert als RückgabeRange-Objekte, die auf Teile der Eingabemenge zeigen. Damit werden jegliche Speicherallokationen vermieden.
Videos by heise
Folgender Code zeigt die Unterschiede von EnumerateSplits() gegenüber Split():
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace NET9_Console.FCL90
{
class FCL9_RegEx
{
public void Run()
{
CUI.Demo(nameof(FCL9_RegEx));
CUI.H2("Split() erwartet String, liefert Strings");
string URLs = "www.IT-Visions.de\nwww.dotnet9.de\nwww.dotnet-lexikon.de";
foreach (string s in Regex.Split(URLs, "[.\n]", RegexOptions.Multiline))
{
Console.WriteLine($"Teil: {s}");
}
CUI.H2("EnumerateSplits() erwartet ReadOnlySpan<char> liefert Range innerhalb Span<T>");
ReadOnlySpan<char> URlsAsSpan = URLs;
foreach (Range r in Regex.EnumerateSplits(URlsAsSpan, "[.\n]", RegexOptions.Multiline))
{
Console.WriteLine($"Teil: {URlsAsSpan[r]}");
}
}
}
}
(Bild: Screenshot (Holger Schwichtenberg))
(Bild: coffeemill/123rf.com)
Das nächste LTS-Release steht an: Auf der Online-Konferenz betterCode() .NET 10.0 am 18. November 2025 – ausgerichtet von iX und dpunkt.verlag in Kooperation mit IT-visions.de – präsentieren der Autor dieses Artikels, Dr. Holger Schwichtenberg, und weitere Experten die wichtigsten Neuerungen. Dazu zählen die Updates im .NET 10.0 SDK sowie in C# 14.0, ASP.NET Core 10.0, Blazor 10.0, Windows Forms 10.0, WPF 10.0, WinUI 3, .NET MAUI 10.0 und die Integration von Künstlicher Intelligenz in .NET-Anwendungen.
Das Programm ist noch nicht veröffentlicht – bis dahin sind vergünstigte Blind-Bird-Tickets bereits im Online-Shop erhältlich. Das Vorjahresprogramm lässt sich im Archiv einsehen.
(rme)