Wenn ich in C # eine string
durch eine andere teilen möchte, muss string
ich so etwas tun:
testString.Split(new string[] { "anotherString" }, StringSplitOptions.None);
Aus der überladenen String.Split
MSDN-Dokumentation können wir die Implementierung und den Grund für einen solchen Aufruf ersehen.
Ich komme aus Python und kann nur schwer richtig verstehen, warum ein solcher Aufruf erforderlich ist. Ich meine, ich könnte Regex.Split
eine ähnliche Syntax wie die Python-Implementierung verwenden, aber ich müsste dies auf Kosten einer geringeren Leistung (Einrichtungszeit) für alles Einfache tun .
Meine Frage ist also, warum zum Teufel können wir das nicht einfach tun:
testString.Split("anotherString");
Beachten Sie, dass ich weder einen Prototyp noch eine Implementierung vorschlage. Ich verstehe, warum Sie die obige Version unter Berücksichtigung der aktuellen API nicht implementieren konnten. Mein Ziel war es zu verstehen, warum eine solche API unter Berücksichtigung des Nutzens der obigen Syntax hätte erstellt werden können. Ab sofort scheint Flexibilität das Ziel der Strömung zu sein, String.Split
was Sinn macht, aber um ehrlich zu sein, dachte ich wirklich, dass es irgendwo eine Art Leistungsgewinn gibt. Ich schätze ich lag falsch.
testString.Split(",.;");
und testString.Split(new Char [] {',', '.', ';',);
was ist nicht dasselbe?
IEnumerable<char>
sodass der von Ihnen vorgeschlagene zusätzliche Prototyp in bestimmten Fällen möglicherweise nicht eindeutig ist (begrenzen Sie die gesamte Zeichenfolge oder die einzelnen Zeichen?). Nur eine Vermutung.
testString.Split("anotherString");
bin ich ziemlich zuversichtlich zu sagen, dass das erwartete Verhalten darin bestand, die gesamte Zeichenfolge ( anotherString
in diesem Fall) abzugrenzen .