Em C #, se eu quiser dividir um string
por outro string
, tenho que fazer algo assim:
testString.Split(new string[] { "anotherString" }, StringSplitOptions.None);
Na String.Split
documentação sobrecarregada do MSDN, podemos ver a implementação e por que essa ligação deve ser feita.
Vindo do Python , é difícil para mim entender corretamente por que essa ligação é necessária. Quero dizer, eu poderia usar Regex.Split
para obter uma sintaxe semelhante à implementação do Python, mas precisaria fazê-lo com o custo de menos desempenho (tempo de configuração) para algo simples .
Então, basicamente, minha pergunta é por que diabos não podemos simplesmente fazer:
testString.Split("anotherString");
Observe que não estou sugerindo nenhum protótipo nem implementação. Entendo por que você não conseguiu implementar a versão acima, considerando a API atual. Meu objetivo era entender por que essa API poderia ter sido criada considerando o benefício que a sintaxe acima traz. A partir de agora, a flexibilidade parece ser o objetivo da corrente String.Split
que faz sentido, mas, para ser sincero, realmente pensei que havia algum tipo de ganho de desempenho em algum lugar. Eu acho que estava errado.
testString.Split(",.;");
e testString.Split(new Char [] {',', '.', ';',);
quais não são a mesma coisa?
IEnumerable<char>
para que o protótipo adicional que você está sugerindo possa parecer ambíguo em certos casos (você delimita a string inteira ou delimita cada um de seus caracteres?) Apenas um palpite.
testString.Split("anotherString");
, estou bastante confiante em dizer que o comportamento esperado era delimitar toda a string ( anotherString
neste caso).