我有填充数组的代码:
var counters = new[] { 1,2,4,8 }
这很好但后来在我的代码中我想做这样的事情:
counters = new[] { 2,2,3,5 }
有什么方法可以做到这一点吗?我对C#很新,还在学习
答案 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