Делает ли разделение массива с помощью Index/Range создание копии массива
С C# 8.0 видя введение структур Index
а также Range
Теперь мы можем легко получить кусок массива, что-то вроде
string[] baseArray = {"a","b", "c", "d", "e", "f"};
var arr = baseArray[1..^2];
Копирует ли массив, как этот, массив? Или делает это без копирования, как ArraySegment<T>
?
1 ответ
Решение
Попробуй сам:
string[] baseArray = { "a", "b", "c", "d", "e", "f" };
var arr = baseArray[1..^2];
Debug.WriteLine(arr[0]);
Debug.WriteLine(baseArray[1]);
arr[0] = "hello";
Debug.WriteLine(arr[0]);
Debug.WriteLine(baseArray[1]);
Выход
b
b
hello
b
Мы можем сделать вывод, что массив скопирован.