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