【问题标题】:Correct way to change value in List<int> / array [duplicate]更改 List<int> / 数组中的值的正确方法 [重复]
【发布时间】:2022-01-02 23:55:47
【问题描述】:

假设列表/数组

List<int> a = new List<int>(){1,2,3,4,5};
int []a = new int[]{1,2,3,4,5};

我想更改索引 2 处的值,正确的方法是什么?

a[2]++; or a[2] = a[2]++;

请解释答案。

【问题讨论】:

  • 你真的试过并观察效果了吗?
  • 你考虑过++a[2]吗?

标签: c# .net


【解决方案1】:

正确的方法是第一种:

A[2]++;

第二个也有效,但它做的工作比必要的多。相当于下面的代码:

a[2] = a[2]; // useless
a[2]++;

后缀 ++ 运算符(如x++)在它出现的行完成执行后应用。 前缀 ++ 运算符(如++x)首先修改元素,然后使用值。

我建议您阅读有关“增量运算符”的文档:

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/arithmetic-operators#increment-operator-

【讨论】:

【解决方案2】:

a[2] = a[2]++ 的结果将是 a[2],在本例中为 3。

postfix incrementa[2]++ 将在它出现的行结束后更改a[2] 的值。

如果要更改值,则a[2]++a[2] = ++a[2] 有效。

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 2014-03-06
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2021-08-23
    • 2011-07-10
    • 2016-03-13
    相关资源
    最近更新 更多