c# - Array.Clear(new [] {1,2,3}, 0, 2) 输出 [1,z2,z3]

标签 c# arrays

编辑:更改 System.Array.Clear(new[] {1,2,3}, 0, 2);到 System.Array.Clear(numbers, 0, 2);但得到输出 [0, z0, z3] 并期待 [0,0,3]

我正在学习 C#,目前正在学习数组和 Clear()。当试图查看使用 Clear() 时会发生什么时,我得到以下输出:

enter image description here

我不明白为什么会这样。不应该是 [0,0,3] 吗?

我的代码是这样的:

Program.cs

namespace Introduction
{
    internal class Program
    {
        /* MAIN FUNCTION */
        public static void Main()
        {
            // RunControlFlow();
            RunArrays();
        }

        /* ARRAYS */
        public static void RunArrays()
        {
            // Var declaration
            var array = new Arrays.Array();

            array.Manipulation();
        }
    }
}

Arrays.cs

using System;

namespace Introduction.Arrays
{
    public class Array
    {

        public void Manipulation()
        {
            var numbers = new[] {1, 2, 3};
            System.Array.Clear(numbers, 0, 2);
            Console.WriteLine("Manipulation | Clearing from index 0 to 2: [{0}]", string.Join(",z", numbers));
        }
    }
}

最佳答案

您没有将 numbers 数组传递给 Clear 方法,您正在创建一个具有相同元素的新数组,但它是一个完全不同的引用并且没有任何内容与 numbers 相关。这就是 numbers 中的值保持不变的原因:

Array.Clear(numbers, 0, 2);

关于c# - Array.Clear(new [] {1,2,3}, 0, 2) 输出 [1,z2,z3],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54162553/

相关文章:

python - 如何删除 numpy 数组中的列?

arrays - 如何制定包含数组的复合类型的数组文字?

c# - 在WPF MVVM应用程序中如何启动选中的单选按钮= true

c# - C#计算打印页数

Java从多个数组中删除重复项

python - 如何删除二维数组中具有特定值的行并修改列值?

c# - 设计网站后端——Python 还是 C++/C#?

c# - Convert.ToDecimal(string) 和 Decimal.Parse(string) 之间的区别

c# - 将 ApplicaitonSettings 放在分层 mvc 项目中的什么位置?

Javascript array.find() 回调将对象覆盖为全局数组