C# 在C中更改数组中的元素#

C# 在C中更改数组中的元素#,c#,C#,这两行代码之间有什么区别 arrayOneF[i+1]。替换(arrayOneF[i+1],“x”) arrayOneF[i+1]=arrayOneF[i+1]。替换(arrayOneF[i+1],“x”) 第二个代码给出了所需的结果,而第一个代码执行了该行,但没有给出我想要的结果。为什么我必须使元素[I+1]等于代码?第一位的代码是否足以对元素进行更改?C#中的字符串是不可变的Replace返回一个新字符串;它不会以任何方式修改原始字符串。因此,在第一个示例中,您创建一个新字符串并立即丢弃它。

这两行代码之间有什么区别

  • arrayOneF[i+1]。替换(arrayOneF[i+1],“x”)

  • arrayOneF[i+1]=arrayOneF[i+1]。替换(arrayOneF[i+1],“x”)


  • 第二个代码给出了所需的结果,而第一个代码执行了该行,但没有给出我想要的结果。为什么我必须使元素[I+1]等于代码?第一位的代码是否足以对元素进行更改?

    C#中的字符串是不可变的
    Replace
    返回一个新字符串;它不会以任何方式修改原始字符串。因此,在第一个示例中,您创建一个新字符串并立即丢弃它。

    Replace返回任何数据的新实例。它不会替换源数据中的值。这就是为什么在第一个示例中,替换完成并作为新值返回。因为它没有分配给任何东西,所以它丢失了


    在第二种情况下,您实际上将值分配回相同的数组位置,捕获替换的结果。

    第一行调用
    Replace
    方法,对
    arrayOneF[i+1]
    中存储的任何对象使用提供的参数-从代码看,它似乎是一个字符串

    结果将作为字符串返回并丢弃,因为它未被使用。原始字符串没有更改,因为c#中的Sting是不可变的


    第二行执行相同的操作,只有retun值被分配给数组中的同一个插槽。

    1调用数组中某个对象的方法。2使用该方法调用的返回值替换数组中的对象。问题的目的是让我们猜猜你想在这里做什么?你曾经被一页文档咬过,现在你害怕自己阅读文档吗?我很同情,但唯一要做的就是回到那匹小马上,牛仔!试试这个:
    string a=“food”;a、 替换(“o”、“e”);控制台写入线(a)。控制台将写入
    食物
    。另一方面,
    string a=“food”;字符串b=a。替换(“o”、“e”);控制台写入线(b)
    将写入
    提要
    。这是正确答案。这里的误解在于替换方法的性质;它与数组无关。编辑:嗯,其他答案也是正确的,但这是对问题最清楚的陈述。