【问题标题】:Replace a substring in each element of a string array?替换字符串数组的每个元素中的子字符串?
【发布时间】:2011-04-13 02:02:23
【问题描述】:

嘿,我有一个字符串数组,我想替换每个元素中的某个子字符串。除了显式迭代数组之外,有没有一种简单的方法可以做到这一点?

谢谢:-)

【问题讨论】:

    标签: c# arrays substring


    【解决方案1】:

    最终,无论如何,您所做的任何事情都会完全做到这一点。一个简单的for 循环应该没问题。有一些涉及 lambda 的漂亮解决方案,例如 Array.ConvertAll / Enumerable.Select,但不是必须的:

    for(int i = 0 ; i < arr.Length ; i++) arr[i] = arr[i].Replace("foo","bar");
    

    for 循环对 数组 的处理效率最高;而 foreach 由于迭代器变量的变异而无法选择)

    【讨论】:

      【解决方案2】:

      你可以迭代数组隐式

      arrayOfStrings = arrayOfStrings.Select(s => s.Replace("abc", "xyz")).ToArray();
      

      【讨论】:

      • 严格来说,这不会替换数组中的元素,它会创建一个包含替换元素的新数组。如果在其他地方引用了原始 arrayOfStrings,就像 arrayOfStrings 是一个 in 参数一样,这会有所不同方法。
      • @grady 你不能使用 foreach(var s in arrayOfStrings) {s = s.Replace("foo", "bar"); } 因为你不能修改 foreach 变量。
      猜你喜欢
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      相关资源
      最近更新 更多