En C # si je veux diviser un stringpar un autre, stringje dois faire quelque chose comme ça:
testString.Split(new string[] { "anotherString" }, StringSplitOptions.None);
De la String.Splitdocumentation MSDN surchargée, nous pouvons voir la mise en œuvre et pourquoi un tel appel doit être effectué.
Venant de Python , il m'est difficile de comprendre correctement pourquoi un tel appel est nécessaire. Je veux dire que je pourrais utiliser Regex.Splitpour obtenir une syntaxe similaire à celle de l'implémentation de Python, mais je devrais le faire au prix de moins de performances (temps de configuration) pour quelque chose de simple .
Donc, fondamentalement, ma question est pourquoi diable ne pouvons-nous pas simplement faire:
testString.Split("anotherString");
Notez que je ne suggère aucun prototype ni implémentation. Je comprends pourquoi vous n'avez pas pu implémenter la version ci-dessus compte tenu de l'API actuelle. Mon objectif était de comprendre pourquoi une telle API aurait pu être créée compte tenu de l'avantage que la syntaxe ci-dessus apporte. À l'heure actuelle, la flexibilité semble être l'objectif du courant String.Splitqui a du sens, mais pour être honnête, je pensais vraiment qu'il y avait une sorte de gain de performances quelque part. Je suppose que j'avais tort.
testString.Split(",.;");et testString.Split(new Char [] {',', '.', ';',);qui ne sont pas la même chose.
IEnumerable<char>afin que le prototype supplémentaire que vous proposez puisse apparaître ambigu dans certains cas (délimitez-vous par la chaîne entière ou par chacun de ses caractères?) Juste une supposition.
testString.Split("anotherString");, je suis assez confiant pour dire que le comportement attendu était de délimiter sur toute la chaîne ( anotherStringdans ce cas).