如何重新填充数组
本文关键字:数组 填充 何重新 | 更新日期: 2023-09-27 17:55:55
我有填充数组的代码:
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 };
您的代码将起作用,但它不会重新填充数组,而是创建一个新数组。你可以这样做
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