En C # si quiero dividir un stringpor otro string, tengo que hacer algo así:
testString.Split(new string[] { "anotherString" }, StringSplitOptions.None);
A partir de la String.Splitdocumentación sobrecargada de MSDN podemos ver la implementación y por qué se debe realizar dicha llamada.
Viniendo de Python , es difícil para mí entender correctamente por qué se necesita dicha llamada. Quiero decir que podría usar Regex.Splitpara obtener una sintaxis similar a la implementación de Python, pero tendría que hacerlo a costa de un menor rendimiento (tiempo de configuración) para cualquier cosa simple .
Básicamente, mi pregunta es por qué demonios no podemos simplemente hacer:
testString.Split("anotherString");
Tenga en cuenta que no estoy sugiriendo ningún prototipo ni implementación. Entiendo por qué no pudo implementar la versión anterior teniendo en cuenta la API actual. Mi objetivo era entender por qué podría haberse creado una API de este tipo teniendo en cuenta el beneficio que aporta la sintaxis anterior. A partir de ahora, la flexibilidad parece ser el objetivo de la corriente String.Splitque tiene sentido, pero para ser sincero, realmente pensé que había algún tipo de ganancia de rendimiento en alguna parte. Creo que estaba equivocado.
testString.Split(",.;");y testString.Split(new Char [] {',', '.', ';',);que no son lo mismo?
IEnumerable<char>por lo que el prototipo adicional que sugiere puede parecer ambiguo en ciertos casos (¿delimita por la cadena completa o delimita por cada uno de sus caracteres?) Solo una suposición.
testString.Split("anotherString");, estoy bastante seguro de decir que el comportamiento esperado era delimitarse en toda la cadena ( anotherStringen este caso).