c# - 字符串的替换方法不会更改字符串

标签 c# string immutability

我尝试将包含“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();
    }
}

最佳答案

字符串是不可变的(意味着给定字符串的值永远不会改变)。 SubstringReplace 等函数返回 字符串,这些字符串表示执行了所需操作的原始字符串。

为了实现你想要的,你需要这个:

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

关于c# - 字符串的替换方法不会更改字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9106961/

相关文章:

python - 理解什么样的对象可以是字典键

java - 不变性和图形模型——如何创建它们?

c# - 比较使用 PropertyInfo.GetValue() 检索的值时出现意外结果

c# - Excel VSTO 工作簿新事件

Ruby 正则表达式字符串匹配 t =~/^\d{2}( :\d{2}){2}$/

java - 提示 java.lang.String.replace 问题?

c++ - 如何将 std::string 转换为 LPCSTR?

c# - 在 C# 中寻找可用的不可变 bool 数组

c# - 终止进程事​​件

c# - 实时监控网络状态。引发了哪些事件?