C#ではstring
、別のものstring
を分割したい場合は、そのようなことをしなければなりません:
testString.Split(new string[] { "anotherString" }, StringSplitOptions.None);
オーバーロードされたString.Split
MSDNドキュメントから、実装とそのような呼び出しを行う必要がある理由を確認できます。
Pythonから来たので、なぜこのような呼び出しが必要なのかを正しく理解するのは難しいです。Regex.Split
Pythonの実装と同様の構文を取得するために使用できましたが、単純なものではパフォーマンス(セットアップ時間)が低下するという犠牲を払う必要があります。
だから基本的に、私の質問は、なぜ地獄ができないのかということです:
testString.Split("anotherString");
プロトタイプも実装も提案していないことに注意してください。現在のAPIを考慮して上記のバージョンを実装できない理由を理解しています。私の目標は、上記の構文がもたらす利点を考慮して、そのようなAPIが作成された理由を理解することでした。今のところ、柔軟性はString.Split
理にかなった現在の目標のようですが、正直なところ、どこかで何らかのパフォーマンスの向上があると本当に思っていました。私は間違っていたと思います。
testString.Split(",.;");
、testString.Split(new Char [] {',', '.', ';',);
どれが同じではないのか。
IEnumerable<char>
ため、提案している追加のプロトタイプが特定の場合にあいまいに見える場合があります(文字列全体で区切るか、各文字で区切るか)。
testString.Split("anotherString");
、期待される動作は文字列全体(anotherString
この場合)で区切ることであるとかなり確信しています。