В 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в данном случае).