Я пытаюсь найти самый быстрый способ вернуть часть массива в C# Мой текущий путь выглядит следующим образом:Возврат части массива
// .. set int moveCount ..
// .. set int[] childArray ..
int[] realArray = new int[moveCount];
Array.Copy(childArray, realArray, moveCount);
return realArray;
Это, как я вижу это везде в сети , но Интересно, будет ли массив теперь копироваться дважды. Однажды, потому что я это делаю, и один раз из-за возвращения.
- Это правильное предположение ?.
- Есть ли лучший способ? Я знаю о Buffer.BlockCopy.
А я ошибочно предполагал, что массивы передаются по значению. Я не всегда получаю его с C#. Спасибо –
@AartStuurman, прочитайте эту статью [Параметр, проходящий в C#] (http://www.yoda.arachsys.com/csharp/parameters.html) от великого человека – Habib
@AartStuurman: Array * ссылки * передаются по значению по умолчанию, как и все другие ссылочные типы. Дело не в том, что массивы передаются по ссылкам - это то, что ссылки передаются по значению. Есть большая разница. –