C# 如何重新填充数组?

C# 如何重新填充数组?,c#,C#,我有填充数组的代码: var counters = new[] { 1,2,4,8 } 这很好,但稍后在我的代码中,我想这样做: counters = new[] { 2,2,3,5 } 有什么办法我可以做到这一点吗?我对C#非常陌生,仍然在学习你在问题中编写的代码会很好:第一行将创建一个新数组,第二行也将创建一个新数组,并将新数组分配给现有变量。旧的整数数组将被替换(稍后将被垃圾收集)您在问题中编写的代码可以正常工作:第一行将创建一个新数组,第二行也将创建一个新数组,并将新数组分配给现有变

我有填充数组的代码:

var counters = new[] { 1,2,4,8 }
这很好,但稍后在我的代码中,我想这样做:

counters = new[] { 2,2,3,5 }

有什么办法我可以做到这一点吗?我对C#非常陌生,仍然在学习你在问题中编写的代码会很好:第一行将创建一个新数组,第二行也将创建一个新数组,并将新数组分配给现有变量。旧的整数数组将被替换(稍后将被垃圾收集)

您在问题中编写的代码可以正常工作:第一行将创建一个新数组,第二行也将创建一个新数组,并将新数组分配给现有变量。旧的整数数组将被替换(稍后将被垃圾收集)

您的问题是什么?您的代码有效:

    var counters = new[] { 1,2,4,8 };

    counters = new[] { 2, 2, 3, 5 };

你有什么问题?您的代码有效:

    var counters = new[] { 1,2,4,8 };

    counters = new[] { 2, 2, 3, 5 };

您的代码可以工作,但它不会重新填充数组,而是创建一个新数组。 你可以这样做

Array.Copy( new int[] { 2,2,3,5 }, counters, 4);

您的代码可以工作,但它不会重新填充数组,而是创建一个新数组。 你可以这样做

Array.Copy( new int[] { 2,2,3,5 }, counters, 4);

是的,你可以照你写的做

但是,请注意,这将创建一个新数组,而不是替换旧数组中的值。如果另一个变量持有对同一数组的引用,则会产生差异

示例1

var counters = new[] { 1, 2, 4, 8 };
var counters2 = counters;

counters = new[] { 2, 2, 3, 5 };

Console.WriteLine(counters2[0].ToString()); // outputs 1
示例2

var counters = new[] { 1, 2, 4, 8 };
var counters2 = counters;

counters[0] = 2;
counters[1] = 2;
counters[2] = 3;
counters[3] = 5;  // or use Array.Copy as suggested by Henrik

Console.WriteLine(counters2[0].ToString()); // outputs 2

是的,你可以照你写的做

但是,请注意,这将创建一个新数组,而不是替换旧数组中的值。如果另一个变量持有对同一数组的引用,则会产生差异

示例1

var counters = new[] { 1, 2, 4, 8 };
var counters2 = counters;

counters = new[] { 2, 2, 3, 5 };

Console.WriteLine(counters2[0].ToString()); // outputs 1
示例2

var counters = new[] { 1, 2, 4, 8 };
var counters2 = counters;

counters[0] = 2;
counters[1] = 2;
counters[2] = 3;
counters[3] = 5;  // or use Array.Copy as suggested by Henrik

Console.WriteLine(counters2[0].ToString()); // outputs 2

你可以照你写的那样做。。。你有错误吗?你的代码怎么了?是的,正是你写的方式。但是你必须在行尾加上分号。不管怎样,你为什么要这样做?您是否考虑过使用其他数据结构,如“代码>列表<代码>、<代码>队列、<代码>堆栈< /代码>等等?在大多数情况下,它们更适合这项任务。你可以按照你写的那样做。。。你有错误吗?你的代码怎么了?是的,正是你写的方式。但是你必须在行尾加上分号。不管怎样,你为什么要这样做?您是否考虑过使用其他数据结构,如“代码>列表<代码>、<代码>队列、<代码>堆栈< /代码>等等?在大多数情况下,它们更适合该任务。