Метод замены строки не меняет строку - PullRequest
1 голос
/ 02 февраля 2012

Я пытаюсь заменить имя файла, который содержит «TEMPDOCUMENTLIBRARY», на «SHAREDDOCS» в документах (типизированный набор данных) .Но так или иначе это не заменяет это вообще.Что не так?

for (int index = 0; index < docs.Document.Rows.Count; index++)
{
    if (docs.Document[index].FileName.Contains("TEMPDOCUMENTLIBRARY"))
    {
         docs.Document[index].BeginEdit();
         docs.Document[index].FileName.Replace("TEMPDOCUMENTLIBRARY", "SHAREDDOCS");
         docs.Document[index].EndEdit();
    }
}

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

Строки являются неизменяемыми (это означает, что значение данной строки никогда не изменяется ). Такие функции, как Substring и Replace, возвращают новые строки, которые представляют исходную строку с требуемыми выполненными операциями.

Чтобы достичь желаемого, вам нужно:

docs.Document[index].FileName = 
      docs.Document[index].FileName.Replace("TEMPDOCUMENTLIBRARY", "SHAREDDOCS");
2 голосов
/ 02 февраля 2012

String.Replace не заменяет на месте.Попробуйте:

docs.Document[index].FileName = docs.Document[index].FileName.Replace("TEMPDOCUMENTLIBRARY", "SHAREDDOCS");

Обратите внимание, что в документации (ссылка выше) возвращается результат замены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...