Строка. Empty in strings

2 дня назад возник вопрос, связанный с string.LastIndexOf (String.Empty) , возвращающим последний индекс строки:

Заканчиваются ли строки C # на пустая строка?

Я так и подумал; строка всегда может содержать string.empty между символами, например:

"testing" == "t" + String.Empty + "e" + String.Empty +"sting" + String.Empty;

После этого я хотел проверить, возвращает ли String.IndexOf (String.Empty) 0, потому что с String.Empty ] может быть между любыми символами в строке, это было бы то, что я ожидал, что он вернется, и я не ошибся.

string testString = "testing";
int index = testString.LastIndexOf(string.Empty); // index is 6
index = testString.IndexOf(string.Empty); // index is 0

На самом деле он вернул 0. Я начал думать, что если бы я мог разделить строку с помощью String .Empty , я получу как минимум 2 строки, и это будет String. Пусто и остальная часть строки, поскольку String.IndexOf (String.Empty) вернул 0, а String.LastIndexOf (String.Empty) вернул длину строки. Вот что я закодировал:

string emptyString = string.Empty;
char[] emptyStringCharArr = emptyString.ToCharArray();
string myDummyString = "abcdefg";
string[] result = myDummyString.Split(emptyStringCharArr);

Проблема в том, что я не могу явно преобразовать String.Empty в char [] и получить пустую строку []. Мне бы очень хотелось увидеть результат этой операции и причину этого. Итак, мои вопросы:

  1. Есть ли способ разделить строку с помощью String.Empty ?

  2. Если это невозможно, но в абсолютном мире это было бы возможно, вернет ли он массив, полный символов типа [0] = "t" [1] = "e" [2] = "s" и так далее, или он просто вернет полную строку? Что имеет больше смысла и почему?

6
задан Community 23 May 2017 в 12:26
поделиться