У 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
в даному випадку).