Как скопировать массив?
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
int[] FIRST = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] SECON = FIRST;
SECON[0] = 10;
Console.WriteLine(FIRST[0]); // Выводится 10
for (;Console.ReadKey().Key != ConsoleKey.Escape;);
}
}
}
Я пытался сделать все примерно так, но получается что-то вроде ссылки на первый массив, а мне нужна копия, изменение которой никак не повлияет на изначальный массив.
Ответы (2 шт):
Автор решения: Kirill Warp
→ Ссылка
Можно воспользоваться методом копирования Array.Copy
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
int[] FIRST = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] SECOND = new int[FIRST.GetUpperBound(0) - 1];
Array.Copy(FIRST, SECOND, FIRST.GetUpperBound(0) - 1);
SECOND[0] = 10;
Console.WriteLine(FIRST[0]); // Выводится 0
for (;Console.ReadKey().Key != ConsoleKey.Escape;);
}
}
}
Автор решения: Anonim Anonim
→ Ссылка
int[] FIRST = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] SECON = new List<int>(FIRST.AsEnumerable()).ToArray();
SECON[0] = 10;
Console.WriteLine(new string('-', 40));
Console.WriteLine(FIRST[0]);
Console.WriteLine(new string('-', 40));
Console.ReadKey();