我怎样才能重新填充数组?

时间:2011-05-11 07:48:33

标签: c#

我有填充数组的代码:

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

这很好但后来在我的代码中我想做这样的事情:

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

有什么方法可以做到这一点吗?我对C#很新,还在学习

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

是的,你可以按照自己的意思去做。

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

示例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