Laden...

Split auf ReadOnlySpan<char> gibt immer eine Länge von 0 zurück

Letzter Beitrag vor 10 Monaten 5 Posts 515 Views
Split auf ReadOnlySpan<char> gibt immer eine Länge von 0 zurück

Hallo zusammen,

ich wollte gerade auf einem ReadOnlySpan<char> Split aufrufen. Jedoch bekommen ich immer für count 0 zurück

		ReadOnlySpan<char> toSplit = "Hallo Welt";
		Span<Range> ranges = new Span<Range>();
		var count = toSplit.Split(ranges, ' ');

Leider sehe ich nicht was ich falsch mache. Bei IndexOf gibt er mir für ' ' die richtige Position.

Schöne Grüße und vielen Dank
Permutation

Ich denke ich habe nun die Lösung gefunden, nachdem ich in den Sourcecode angeschaut habe.

Man muss z.B.

Span<Range> ranges = new Range[] { Range.All, Range.All };

verwenden. Dann befüllt er auch beide.

IIRC ist Dein Vorhaben derzeit nicht möglich und wird in folgendem PR behandelt: Add 'split' support for ReadOnlySpan similar to string #934

Edit: Dein zweiter Post war ein paar Sekunden schneller.

Wenn du das Ergebnis nicht auf dem Heap speichern musst, kannst du das Array auch mit stackalloc anlegen:

ReadOnlySpan<char> toSplit = "Hallo Welt";
Span<Range> ranges = stackalloc Range[2];
var count = toSplit.Split(ranges, ' ');

Vielen dank für die Hinweise.

Dann werde ich das Ticket beobachten und wenn es kommt den Code anpassen.

Und das mit dem "stackalloc" ist auch sehr interessant. Auch dafür vielen Dank.