Почему нельзя изменить элементы массива через присвоение новых значений?
Почему нельзя изменить элементы массива через присвоение новых значений?
Например, вот так:
int [] x = { 1, 2, 3, 4, 5 }
x = { 9, 8, 7, 6, 5 }
Ответы (2 шт):
Автор решения: aepot
→ Ссылка
В старом синтаксисе C# сработает вот так
int[] x = { 1, 2, 3, 4, 5 };
x = new[] { 9, 8, 7, 6, 5 };
В новом C# (.NET 8+) можно так
int[] x = [1, 2, 3, 4, 5];
x = [9, 8, 7, 6, 5];
Это совершенно два равнозначних кода.
И это не совсем изменение элементов массива, это присваивание в переменную x
нового массива из 5 элементов, заданного литералом, то есть прямо в коде.
Автор решения: rotabor
→ Ссылка
Можно так:
int[] x = { 1, 2, 3, 4, 5 };
Array.Copy((int[])[ 9, 8, 7, 6, 5 ], x, x.Length);
Здесь новые значения присваиваются элементам массива путём копирования из другого массива. Код достаточно компактный, и другой массив может быть не только константный.