У меня есть класс коллекции, полученный от List<T>
, и вам нужно выполнить упакованный action
экземпляр этой коллекции (то есть коллекция слишком велика, поэтому Я хочу разбить коллекцию на части и выполнить action
на частях). Обратите внимание, что действие имеет типизированную подпись, это предопределенный метод, который ожидает коллекцию того же типа.Как получить ссылку на часть списка без создания копии в C#
Я знаю
target.addRange(source.getRange(start, packageSize);
, но это не то, что я хочу, так как для этого мне нужен новый экземпляр коллекции и создавать копии записей списка. Так как я знаю, что действие не будет манипулировать список в любом случае я бы preferr сделать что-то вроде
action(source.Reference(fromIndex, toIndex);
с целью не создавать копии записей списка (я знаю, что это «только» ссылки , но все же есть копия. Есть ли способ сделать это в C#?
Конечно, я мог бы передать метод action
, который знает, как получить диапазон, но действие не должно знать о моем намерении подразделяют исполнение на части.
Благодарим вас за отзыв. Если бы вы объяснили нисходящее движение, я мог бы принять вашу критику в следующий раз, когда я напишу вопрос. – Thomas
_I знаю, что это «единственные» ссылки. Именно поэтому вы не должны беспокоиться об этом. Вы будете делать копии этих ссылок постоянно, не решайте проблем, которые у вас нет. –
@HenkHolterman Спасибо за ввод. Я проверю, имеет ли это значение, используя предложения из полученных ответов. Программа будет явно работать на устройстве с ограниченным ресурсом (частота процессора и память), а не на общем ПК, поэтому я разработал привычку быть жадным с любым видом ресурсов. – Thomas