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 []
и получить пустую строку []. Мне бы очень хотелось увидеть результат этой операции и причину этого. Итак, мои вопросы:
Есть ли способ разделить строку с помощью String.Empty
?
Если это невозможно, но в абсолютном мире это было бы возможно, вернет ли он массив, полный символов типа [0] = "t" [1] = "e" [2] = "s"
и так далее, или он просто вернет полную строку? Что имеет больше смысла и почему?