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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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.